The _swapUnderlyingToAsset function uses a simple numeric comparison, requiring minOut > _amount, to “ensure” a premium when swapping WETH for ALETH. However, this check only guarantees that the contract receives a higher number of ALETH tokens than the amount of WETH spent—it does not account for the market value of those tokens. If ALETH trades below 1:1 relative to WETH, the strategy can receive more ALETH in terms of token count yet end up with a lower total value, resulting in a net loss.
Location:
The requirement require(minOut > _amount, "minOut too low"); attempts to enforce a premium by ensuring minOut (expected ALETH) is strictly greater than the _amount of WETH.
And the function then calls:
The contract only checks that the number of ALETH tokens exceeds the number of WETH tokens, it ignores the possibility that ALETH might be worth significantly less than WETH on the open market.
For instance, swapping 10000 WETH to 10010 ALETH appears to be a premium, but the ALETH/WETH price is 0.9852 in the Coinbase market now, the value of 10010 ALETH is equal to 9861.852 WETH, which means swapping 10000 WETH to 9851.852 WETH, is actually a net loss.
This approach to verifying a “premium swap” is thus incomplete. It overlooks the ratio or price feed that would confirm whether the received ALETH is indeed worth more than the WETH sent out.
The strategy can end up with a reduced total valuation despite receiving a larger token amount. This misalignment between token quantity and token market price directly harms any user whose assets are managed by the strategy.
Manual Review
1.Implement price feed: Use an oracle or reliable price feed to confirm that the market value of the ALETH to be received exceeds the value of the WETH spent.
2.Dynamic minOut Calculation: Instead of letting keepers supply any minOut, have the strategy compute a safe threshold based on recent on-chain or oracle-based WETH/ALETH prices, ensuring that a net profitable ratio is enforced.
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.