from a fundamental misunderstanding of the Transmuter's balance accounting system. The getUnexchangedBalance() function from ITransmuter.sol already includes the claimable balance in its calculation. However, the strategy's _harvestAndReport() function adds the underlyingBalance separately, creating a double-counting scenario.
This leads to:
Inflated total asset reporting
Incorrect share price calculations
Potential exploitation through strategic deposits before harvests
The core vulnerability lies in the balance reporting mechanism across all three strategy implementations.
because of incorrect assumptions about the Transmuter's balance accounting system. The getUnexchangedBalance() function already includes both deposited and claimable balances, but the strategy implementations incorrectly add underlyingBalance separately.
this leads to:
Inflated total asset reporting
Incorrect share price calculations
Potential manipulation through strategic deposits/withdrawals
Inaccurate yield calculations
and affects all token interactions (WETH, alETH) across all three chains, making it a systemic issue in the protocol's core accounting logic.
In the Transmuter contract interface
The getUnexchangedBalance() function already includes both deposited and claimable balances. However, in all three strategy implementations (Mainnet, Optimism, Arbitrum), the balance calculation double counts these values
This creates an accounting error where:
unexchanged includes all deposited and claimable balances
underlyingBalance is added again, despite being part of the unexchanged balance
This double counting inflates the reported total assets
The bug through all balance-dependent functions and affects the core accounting across all supported chains (Ethereum, Optimism, Arbitrum) and tokens (WETH, alETH).
These changes ensure:
Accurate balance accounting by removing double counting
Consistent balance reporting across all functions
Better transparency through events
Runtime balance validation capabilities
The contest is live. Earn rewards by submitting a finding.
This is your time to appeal against judgements on your submissions.
Appeals are being carefully reviewed by our judges.