Multiple owner-only functions in the InheritanceManager contract don't call _setDeadline()
, violating a core invariant of the contract that every owner transaction should reset the 90-day timer.
The README explicitly states in the Core Assumptions and Invariants:
EVERY transaction the owner does with this contract must reset the 90 days timer
However, the following functions don't call _setDeadline()
:
Other owner functions properly reset the deadline:
sendERC20
calls _setDeadline()
sendETH
calls _setDeadline()
addBeneficiery
calls _setDeadline()
HIGH
Directly violates a core invariant of the contract
Could lead to premature inheritance activation
Allows beneficiaries to gain access to funds earlier than intended
Breaks the fundamental security model of the contract
Likelihood: High
Occurs whenever owner uses any of these functions
These functions are part of normal contract operation
No special conditions required
Affects multiple key functions
Owner sets up inheritance with multiple beneficiaries
Owner regularly uses contractInteractions
, removeBeneficiary
, and createEstateNFT
Owner assumes these interactions reset the 90-day timer (as stated in the README)
However, the timer is not reset
Owner goes on vacation for 3 months, expecting to return before inheritance activates
Since these functions didn't reset the timer, the 90-day period expires
Beneficiaries can call inherit()
and gain access to funds while owner is still alive
Owner loses control of their funds unexpectedly
Manual review
Code inspection
Foundry tests
Add the _setDeadline()
call to all owner functions:
For contractInteractions
:
For removeBeneficiary
:
For createEstateNFT
:
These changes would:
Ensure all owner transactions reset the timer
Maintain consistency across all owner functions
Uphold the core invariant stated in the README
Prevent premature inheritance activation
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.