The claimAndSwap
function relies on _minOut
parameter to protect against slippage, but it uses a flawed check
The condition _minOut > _amountClaim
only ensures you get more alETH than WETH, but doesn't account for market price
An attacker could manipulate the price right before the transaction, leading to unfavorable swaps
The core vulnerability is in the claimAndSwap
function's check:
This only ensures you get more alETH than WETH numerically, not by value
Attack Path
Monitor the mempool for keeper calls to claimAndSwap
Front-run the transaction by temporarily pumping the alETH price
Let the keeper's transaction execute at the manipulated price
Back-run by selling at the inflated price
Profit from the price difference
Malicious user can reduce the amount of AlETH claimed WETH can swap for, and profit off the depeg more than the protocol
Manual Review
Implement proper price validation:
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.