Reentrancy attack in getAssets()
function if getAssetBalance()
function makes external call
Attacker contract calls getAssets()
, which in turn calls getAssetBalance()
getAssetBalance()
makes an external call to the attacker contract
Attacker contract's fallback function calls getAssets()
again
Step 1-3 repeat, resulting to an infinite loop
Perform state changes before making external calls:
-- Calculate the asset balance before making the call to getAssetBalance()
. This CEI pattern means that the state of getAssets()
function has already been updated in the events that there is a reentrancy.
Utilize Reentrancy Guards
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.