_deployFunds function calls transmuter.deposit, which is an external function. Without proper precautions, this can open the function to a read-only reentrancy attack, where the state could be manipulated in an unexpected way before the external call completes.https://github.com/Cyfrin/2024-12-alchemix/blob/main/src/StrategyMainnet.sol#L80
Suppose a function (_deployFunds) calls an external contract like transmuter.deposit.
If transmuter.deposit allows a callback to another function in this contract, the attacker can call a view function balanceDeployed before _deployFunds completes its state changes.
Manual
Use a nonReentrant modifier to prevent reentrancy attacks.
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.