58527 sc low complete loss of all reward value on tokeautoethstrategy claimrewards

Submitted on Nov 3rd 2025 at 02:43:33 UTC by @gizzy for Audit Comp | Alchemix V3arrow-up-right

  • Report ID: #58527

  • Report Type: Smart Contract

  • Report severity: Low

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

  • Impacts:

    • Permanent freezing of funds

Description

Brief/Intro

The TokeAutoEthStrategy claims rewards in TOKE_MAC tokens and sends them directly to the vault, but the vault only expects and handles WETH (its underlying asset). This causes TOKE_MAC reward tokens to become permanently stuck in the vault with no way to utilize or recover them, resulting in a complete loss of protocol rewards.

Vulnerability Details

function _claimRewards() internal override returns (uint256 rewardsClaimed) {
    rewardsClaimed = rewarder.earned(address(this));
    rewarder.getReward(address(this), address(MYT), false);
}

The Tokemac rewarder (IMainRewarder) distributes rewards in TOKE_MAC tokens:

  • Rewarder address: 0x60882D6f70857606Cdd37729ccCe882015d1755E

  • Reward token: 0x2e9d63788249371f1DFC918a52f8d799F4a38C94 (TOKE_MAC)

However, the vault (MYT) is designed to handle only WETH as its underlying asset:

  • Vault asset: 0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2 (WETH)

The getReward() function signature from IMainRewarder:

Parameters used:

  • account = address(this) (the strategy contract)

  • recipient = address(MYT) (the vault) ⚠️ WRONG RECIPIENT

  • claimExtras = false

This sends TOKE_MAC tokens directly to the vault, which has no mechanism to handle them.

The Morpho Vault V2 (MYT) is designed to:

  • Only accept and manage its underlying asset (WETH)

  • Has no functionality to handle arbitrary ERC20 tokens

  • Has no recovery mechanism for tokens sent by mistake

Impact Details

All TOKE_MAC reward tokens become permanently stuck and unusable

References

https://github.com/alchemix-finance/v3-poc/blob/a192ab313c81ba3ab621d9ca1ee000110fbdd1e9/src/strategies/mainnet/TokeAutoEth.sol#L95C4-L98C6

Proof of Concept

Proof of Concept

copy and paste in TokeAutoETHStrategy.t.sol

Run

Was this helpful?