The InheritanceManager contract contains a vulnerability in the contractInteractions
function that affects the historic storage of interactions with external protocols. The core issue stems from how the contract stores interaction data in a mapping, where subsequent interactions with the same target address overwrite previous ones rather than preserving the history.
The impact is that:
Beneficiaries lose visibility into historical interactions with the same protocol/contract
Only the most recent interaction with each target contract is recorded
This defeats the stated purpose of making "it clear to beneficiaries where to look for funds outside this contract"
Important transaction data could be permanently lost if overwritten
The following code segment demonstrates the vulnerability:
Consider a scenario where the owner makes multiple deposits to Aave:
Owner deposits 10 ETH to Aave lending pool and stores the interaction
Later, owner deposits another 5 ETH to the same Aave lending pool address
The second interaction overwrites the data from the first interaction
When beneficiaries inherit the contract, they only see evidence of the 5 ETH deposit, potentially losing track of the 10 ETH deposit
To fix this issue:
Manual Code Review
Foundry Testing Framework
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.