When beneficiaries.length == 1
, any address can call inherit()
to become the new owner, regardless of beneficiary status.
The inherit()
function allows msg.sender
to claim ownership if there’s one beneficiary, without verifying if the caller is the actual beneficiary.
An attacker can take full control of the contract after 90 days of inactivity, stealing all assets.
Manual review.
Add a check: require(msg.sender == beneficiaries[0], "Not beneficiary")
.
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.