A high vulnerability has been identified in the InheritanceManager contract's removeBeneficiary function. The function fails to reset the deadline timer, violating a core contract invariant that requires every owner transaction to reset the 90-day timer.
The vulnerability exists in the deadline management system:
Missing Deadline Reset:
The removeBeneficiary function does not call _setDeadline()
Violates core contract assumption that all owner transactions reset the timer
Similar issue might exist in other owner functions like:
contractInteractions
createEstateNFT
Core Assumption Violation:
From the test and documentation:
The test demonstrates this by:
Setting up contract with three beneficiaries
Owner removes all beneficiaries
Deadline is not reset during these operations
Core contract invariant is broken
High severity. The vulnerability allows:
Violation of core contract security assumptions
Potential premature inheritance triggers
Inconsistent deadline management
Breaking of the dead man's switch mechanism
Manual code review
Foundry test framework
Contract invariant analysis
Core assumptions verification
Add deadline reset to removeBeneficiary:
Audit all owner functions:
Review contractInteractions for deadline reset
Review createEstateNFT for deadline reset
Add deadline reset to any missing functions
Implement systematic safeguards:
Create a modifier for owner functions that automatically resets deadline
Add events for deadline changes
Implement deadline verification checks
The contest is live. Earn rewards by submitting a finding.
This is your time to appeal against judgements on your submissions.
Appeals are being carefully reviewed by our judges.