Description:
If the owner passes an address that does not exist, the internal function _getBeneficiaryIndex
returns 0 index, which initializes the address at index 0 as 0x000...000.
Impact:
Medium - no funds are at risk but the beneficiary is removed, in cases where this is the only beneficiary it be a critical issue as there is no recovery if owner private key is lost.
Likelihood: Medium. This issue occurs if the owner mistakenly passes an incorrect address (e.g., a typo or an address not in the list), which is plausible during manual management of beneficiaries. It doesn’t require malicious intent or external attack, but it’s not triggered by default usage—only by an error or oversight.
Proof of Concept:
Recommended Mitigation:
Introduce an error that must be thrown if the index is not found for the given address.
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.