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.