The InheritanceManager::withdrawInheritedFunds function does not enforce a check to ensure the caller is a beneficiary. In the provided PoC, user4 (not a beneficiary) successfully triggers withdrawals after the inheritance period.
The InheritanceManager::withdrawInheritedFunds function lacks proper access control, enabling any address (including non-beneficiaries) to trigger fund withdrawals. While beneficiaries ultimately receive funds, this violates intended authorization logic and exposes the contract to unnecessary external interference.
Low Severity
Theres no steal of funds but non-beneficiaries can forcibly initiate withdrawals, potentially disrupting planned fund distribution schedules.
Manual code review
Foundry test case (provided)
User4, that is not a Beneficiery can call the withdrawInheritedFunds function
Ensure that InheritanceManager::onlyBeneficiaryWithIsInherited is working as intented
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.