The StrategyArb
contract interacts with a router contract to perform token swaps between the underlying token (WETH) and the synthetic asset (alETH). The setRouter()
function allows management to update the router address and sets an unlimited approval for the underlying token to be spent by the new router.
However, when changing routers, the function fails to revoke the approval from the old router address first. This means that previously approved routers retain their unlimited approval to spend the strategy's underlying tokens, even after they are no longer in use.
The setRouter()
function should revoke approval from the old router before setting the approval for the new one:
This ensures that only the currently active router has approval to spend the strategy's tokens.
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.