In the InheritanceManager.sol::nonReentrant()
modifier the transient storage is accessed improperly, leading to potential reentrancy attacks. The transient storage operates independently from memory and contract storage but is not correctly handled, exposing it to unintended interactions.
Affected code:
The contract's reentrancy modifier utilizes the transient storage of Solidity which persists data scoped to the current transaction only. However, the current implementation incorrectly verifies reentrancy by reading from storage slot 1 while updating storage slot 0. This discrepancy causes storage slot 1 to always return false, allowing attackers to bypass the intended reentrancy protection.
Attackers can exploit this flaw to perform reentrant attacks, potentially draining funds or altering critical state variables.
Manual review
Correct the storage slot being read in the reentrancy modifier to match the slot being updated.
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.