When creating a strategy in the constructor of StrategyArb
and StrategyOp
a router address is set when a call to _initStrategy
is made. The router is given an infinite approval for the underlying token. The router then can be changed by the management role in the setRouter
function. However, the problem is that the approval for the old router is not reset. This can cause serious issues if the previous router was found to be vulnerable.
The setRouter
function does not reset the approval of the old router giving it a possibility for malicious action.
A possible impact is full drainage of the given contracts.
Manual Review
Reset the approval of the old router when a new one is set.
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.