The timelock is set to 90 days in the constant InheritanceManager::TIMELOCK
and should be used to update InheritanceManager::setDeadline()
after every new contract interaction by the owner.
However this function isn't called after Three different functions
According to the documentation:
"If the Owner does not use his wallet for more than 90 days in this case, his children listed as beneficiaries can call InheritanceManager::inherit() which will enable additional functionality within this contract."
However InheritanceManager::removeBeneficiary()
,InheritanceManager::createEstateNft()
and InheritanceManager::contractInteractions()
do not call InheritanceManager::setDeadline()
after execution.
This breaks the logic of the app and lets the owner lose ownership even when they can be considered active.
Here is the code:
The impact of this particular vulnerability is that InheritanceManager::inherit()
may be called by a beneficiary even though the contract owner is still active.
Manual review
call setDeadline()
after every function or contract call made bythe owner of the InheritanceManager contract.
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.