The function InheritanceManager::inherit()
has no access control, so any malicious actor could compromise contracts behavior, leading ot loss of wallet ownership and funds
The function InheritanceManager::inherit()
is set to be an external
function, and according to the natspec and overall project documentation, only the beneficiaries should be able to call it after the owner has not used the wallet for 90 days.
Personal backup scenario
: if malicios actor calls the funtion inherit()
before the specified beneficiary, he will gain the ownership of the wallet.
Inheritance scenario
: if malicios actor calls the function before specified beneficiaries, he will cause an authorized state change into inherited
and will enable additional logic to be called InheritanceManager::withdrawInheritedFunds
.
Manual review
Add access control to function InheritanceManager::inherit()
, allowing only beneficiaries to call it.
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.