The onlyBeneficiaryWithIsInherited
modifier is used to verify whether msg.sender
is an authorized beneficiary and whether the inheritance is active. However, the current implementation contains a logic flaw that allows unauthorized users to proceed without proper verification, potentially leading to security risks and unintended fund withdrawals.
Issue: There is no explicit require()
statement to halt execution when msg.sender
is unauthorized.
This allows unauthorized users to interact with the contract without triggering a failure.
Solution: Add a require()
check after the loop to enforce beneficiary verification.
Unauthorized users can bypass the restriction and execute functions meant for beneficiaries.
The contract may experience out-of-bounds errors, causing unexpected failures.
Mannual 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.