When using the removeBeneficiary() function, a new deadline does not get set, breaking the invariant that EVERY transaction the owner does using the contract is supposed to update the deadline (in order to show the owner is still active).
Within the removeBeneficiary() function, the internal _setDeadline() function is not called as it is within the addBeneficiary() function. This causes the deadline to not update after removing a beneficiary.
The deadline is not updated in accordance with a key invariant used within this system. This could allow the inherit() function to be called earlier than anticipated, changing the isInherited state to be True and allow for funds to be withdrawn by those beneficiaries.
Manual review and Foundry
Include the _setDeadline() function at the end of the removeBeneficiary() function to cause the deadline to be reset upon each successful removal of a 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.