57791 sc insight receipt token misconfiguration in aave strategies

Submitted on Oct 28th 2025 at 22:17:07 UTC by @Icon0x for Audit Comp | Alchemix V3arrow-up-right

  • Report ID: #57791

  • Report Type: Smart Contract

  • Report severity: Insight

  • Target: https://github.com/alchemix-finance/v3-poc/blob/immunefi_audit/src/strategies/optimism/AaveV3OPUSDCStrategy.sol

  • Impacts:

    • Temporary freezing of funds for at least 24 hour

    • Temporary freezing of funds for at least 1 hour

Description

Brief/Intro

Aave strategies approve wrong token to Permit2, blocking emergency migration mechanism during protocol upgrades.

Vulnerability Details

Description

The Aave V3 strategy implementations pass the wrong token (underlying asset) instead of the receipt token (aToken) to the parent MYTStrategy constructor. This causes Permit2 to receive approval for a token the strategy doesn't hold, while having no approval for the token the strategy actually holds.

Root Cause

In all three Aave strategies, the constructor passes the underlying asset (_usdc or _weth) instead of the Aave receipt token (_aUSDC or _aWETH) as the fourth parameter to MYTStrategy:

The MYTStrategy constructor then approves this token to Permit2:

Affected Code Locations

File
Line
Current Code
Should Be

src/strategies/optimism/AaveV3OPUSDCStrategy.sol

31

MYTStrategy(..., _usdc)

MYTStrategy(..., _aUSDC)

src/strategies/arbitrum/AaveV3ARBUSDCStrategy.sol

31

MYTStrategy(..., _usdc)

MYTStrategy(..., _aUSDC)

src/strategies/arbitrum/AaveV3ARBWETHStrategy.sol

31

MYTStrategy(..., _weth)

MYTStrategy(..., _aWETH)


Impact Details

Defeats the purpose of Permit2 integration for these strategies

References

  • https://github.com/alchemix-finance/v3-poc/blob/a192ab313c81ba3ab621d9ca1ee000110fbdd1e9/src/strategies/optimism/AaveV3OPUSDCStrategy.sol#L31

  • https://github.com/alchemix-finance/v3-poc/blob/a192ab313c81ba3ab621d9ca1ee000110fbdd1e9/src/strategies/arbitrum/AaveV3ARBUSDCStrategy.sol#L31C9-L31C59

  • https://github.com/alchemix-finance/v3-poc/blob/a192ab313c81ba3ab621d9ca1ee000110fbdd1e9/src/strategies/arbitrum/AaveV3ARBWETHStrategy.sol#L31C8-L31C59

Proof of Concept

Proof of Concept

Add the below test suite to "src/test/strategies/AaveV3OPUSDCStrategy.t.sol"

then run:

Test result:

Was this helpful?