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 V3
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:
0x60882D6f70857606Cdd37729ccCe882015d1755EReward 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 RECIPIENTclaimExtras=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?