Failure to revive previous router in StrategyOp
and StrategyArb
due to safeApprove
mechanism
StrategyOp
and StrategyArb
contracts use safeApprove
function to give allowance the new router. However, in case the router was previously given allowance, safeApprove
will revert ultimately leads to failure of setRouter
function.
Here's the implementation of setRouter
function in StrategyOp contract:
This issue arises from the behavior of the safeApprove
function, which prevents approval actions on addresses with a non-zero allowance value.
Due to this bug, the protocol cannot set the intended router address, potentially disrupting strategy operations for a certain amount of time.
Manual Review
Reset the allowance of the previous router before updating to a new one to efficiently prevent this blocking issue.
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.