The claimAndSwap function doesn't validate the passed routes.
The claimAndSwap function accepts route parameter with arbitrary consequences of routes, consisting of (tokenIn, tokenOut) parameters. However, when the swap uses more than one pool, it is not checked that the tokenOut parameter of the first pool matches the tokenIn parameter of the second pool.
For example, if the swap is WETH -> USDT in pool1, then USDT -> ALETH pool2, it is not checked if the tokenOut of the pool1 is equal to the tokenIn of the pool2.
An invalid route can be passed and pools without a matching token pair will be used resulting in unintended outcomes or token mismatches.
Manuel Review
Validate the tokenOut to match the tokenIn.
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.