The InheritanceManager::nonReentrant
modifier uses transient storage for reentrancy locks but the logic is wrong. The modifier reads from slot 1
while saving to slot 0
. This means the lock check and the lock setting are operating on different storage slots.
An attacker might drain the contract. Even though it seems not to be possible with the functions using the nonReentrant modifier because of the presence of onlyOwner
modifier, it's better to correct this error.
Manual Review
Read and save to the same slot. Do this in the modifier:
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.