57565 sc medium the amount of dust will be permanently locked in stargateethpoolstrategy
Submitted on Oct 27th 2025 at 09:47:17 UTC by @pashap9990 for Audit Comp | Alchemix V3
Report ID: #57565
Report Type: Smart Contract
Report severity: Medium
Target: https://github.com/alchemix-finance/v3-poc/blob/immunefi_audit/src/strategies/optimism/StargateEthPoolStrategy.sol
Impacts:
Permanent freezing of funds
Description
Finding Description and Impact
StargateEthPoolStrategy::_allocate divides the allocated amount by 1e12 and subsequently multiplies it by 1e12 to eliminate residual amounts. However, the dust amounts would not return to the message sender, resulting in the locking of the allocated dust amount. Furthermore, operators are unable to reuse them as dust amounts are native tokens, while operators must transfer WETH to StargateEthPoolStrategy, resulting in a reverted allocation transaction due to a not enough WETH error.
Code Snippet
https://github.com/alchemix-finance/v3-poc/blob/a192ab313c81ba3ab621d9ca1ee000110fbdd1e9/src/strategies/optimism/StargateEthPoolStrategy.sol#L49
Mitigation
interface IStargatePool {
function deposit(address receiver, uint256 amountLD) external payable returns (uint256 amountLDOut);
function redeem(uint256 lpAmount, address receiver) external returns (uint256 amountLDOut);
@@ -42,13 +44,14 @@ contract StargateEthPoolStrategy is MYTStrategy {
function _allocate(uint256 amount) internal override returns (uint256) {
require(TokenUtils.safeBalanceOf(address(weth), address(this)) >= amount, "not enough WETH");
// unwrap to native ETH for Pool Native
- weth.withdraw(amount);
uint256 amountToDeposit = (amount / 1e12) * 1e12;
+ weth.withdraw(amountToDeposit);
+
uint256 dust = amount - amountToDeposit;
if (dust > 0) {
- emit StrategyAllocationLoss("Strategy allocation loss due to rounding.", amount, amountToDeposit);
+ emit StrategyAllocationLoss("Strategy allocation loss due to rounding.", amount, amountToDeposit);//@audit dust amounts should be returned to msg.sender
}Proof of Concept
Proof of Concept
Kindly apply git patch below
Was this helpful?