The InheritanceManager::deadline state variable is not initialized. While this does not immediately enable an attack, it leaves the contract in an uninitialized state until InheritanceManager::addBeneficiary is called. This creates a temporary window of risk where the contract's inactivity period mechanism is not properly enforced. Additionally, if the owner forgets to call InheritanceManager::addBeneficiery or delays it, the contract remains in an uninitialized state, which could lead to unintended behavior or mismanagement.
Update the setup in InheritanceManagerTest.t.sol:
Place the test below in InheritanceManagerTest.t.sol:
The contract remains uninitialized until addBeneficiery is called, creating a window of risk where the inactivity period mechanism is not enforced.
Poor User Experience: The owner must manually call addBeneficiery to initialize the contract.
Manual Review
Initialize the deadline in the constructor to ensure the contract is fully initialized upon deployment:
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.