57752 sc medium aave and euler incentives for myt will be lost due to unimplemented claimrewards function

Submitted on Oct 28th 2025 at 17:15:02 UTC by @Oxdeadmanwalking for Audit Comp | Alchemix V3arrow-up-right

  • Report ID: #57752

  • Report Type: Smart Contract

  • Report severity: Medium

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

  • Impacts:

    • Permanent freezing of unclaimed yield

Description

Brief/Intro

The MYT utilizes AAVE as an underlying strategy to generate yield for depositors both on OP and Arbitrum. AAVE offers incentives—such as staking or liquidity mining rewards—to users who supply assets to the protocol. These rewards are usually distributed in the form of additional tokens (e.g., AAVE or other governance tokens) and can be claimed by users participating in Aave’s incentive programs (https://aave.com/docs/primitives/incentives). Even though the base MYTStrategy defines a function to claim rewards from strategies, this is unimplemented for AAVE which leads to all rewards being lost. Note that this is also an issue in other strategies such as Euler which use an off-chain reward distribution system.

Vulnerability Details

In all AAVE strategies, MYT allocates assets by supplying them to the v3 instance.

    function _allocate(uint256 amount) internal override returns (uint256) {
        require(TokenUtils.safeBalanceOf(address(usdc), address(this)) >= amount, "Strategy balance is less than amount");
        TokenUtils.safeApprove(address(usdc), address(pool), amount);
        @> pool.supply(address(usdc), amount, address(this), 0);
        return amount;
    }

AAVE allows for liquidity mining rewards for depositors to also be claimed on-chain (eg for arbitrum, from the contract here https://arbiscan.io/address/0x929EC64c34a17401F460460D4B9390518E5B473e)

All AAVE strategies however have an unimplemented _claimRewards function which never allows for claiming, making rewards to be stuck forever.

Euler, which uses an off-chain reward distribution system, commonly Merkl also have this function unimplemented which also causes rewards to be lost. When i reached out to the Euler team to confirm, this was their response:

https://discord.com/channels/742749441697513632/1021868855557116006/1428339375594278993

Since no rewards handling is present in any Euler strategies as well, all rewards are also assumed to be lost.

Impact Details

All token incentive rewards are lost, which can cause a significant portion of the yield generated for depositors to be stuck in the contract. Furthermore the contract is not upgradeable so all rewards will be permanently lost due to this.

References

  • https://aave.com/docs/primitives/incentives

  • https://arbiscan.io/address/0x929EC64c34a17401F460460D4B9390518E5B473e

  • https://discord.com/channels/742749441697513632/1021868855557116006/1428339375594278993

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

Proof of Concept

Proof of Concept

  1. Add this interface to the top of the file in AaveV3ARBUSDCStrategy.t.sol.

12 Add this test to the end of the file in AaveV3ARBUSDCStrategy.t.sol

  1. Run the test

  1. Observe the logs. No rewards will be able to be claimed

Was this helpful?