The inherit() function in the contract allows anyone to become the new owner if there is exactly one beneficiary and the inactivity deadline has passed. This occurs due to the lack of a validation check on msg.sender, allowing unauthorized users to take control of the contract.
If beneficiaries.length == 1, the contract blindly assigns msg.sender as the new owner. No validation ensures that msg.sender is actually the intended beneficiary. As a result, anyone can call inherit() and take ownership of the contract.
Manual review
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.