The NonReentrant modifier in InheritanceManager.sol attempts to use transient storage to prevent reentrancy, but it is not implemented correctly causing the modifier to be useless.
The first noted line checks that the value at key "1" is false before calling tstore but tstore stores a value at key "0" instead. Meaning that tload(1) would always return false even when the call is reentrant, allowing the call to proceed.
POC
Add the following test into the InheritanceManagerTest.t.sol
The nonreentrant modifier is useless, allowing reentrant calls into sensitive functions
manual review, foundry
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.