The wrong variable is read in the nonReentrant modifier
's code resulting in a reentrancy attack vector.
In InheritanceManager.sol
, tload(1)
is used to check if we already entered the function instead of tload(0)
that is actually used afterwards :
tstore(0,1)
and tstore(0,0)
are using the "0"
transient variable not the "1"
, it means we should be reading the "0"
transient variable with tload(0)
instead of tload(1)
for the code to function as intended.
The nonReentrant modifier
won't work as intended. It won't avoid reentering the functions.
==> It could lead to reentrancy attacks
like draining funds from the contract.
Manual review, Github.
Replace tload(1)
with tload(0)
.
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.