The strategy's StrategyMainnet::_harvestAndReport()
function updates _totalAssets
in a step-wise manner during report()
calls rather than continuously tracking accrued profits, creating MEV opportunities for sandwich attacks around profit reporting transactions.
Note!: This bug assumed other low severity bugs to be solved about
underlying wring accounting
In _harvestAndReport()
:
The issue:
Profits accrue continuously in the transmuter
_totalAssets
only updates during report()
or during normal deposit(), withdraw()
Creates predictable jumps in share price
MEV bots can sandwich the report transaction
Attack Path:
Monitor claimable balance off-chain
When significant profits accrue:
Front-run report() with deposit
Let report() execute and increase share price
Back-run with withdrawal at higher share price
Extract profit from price difference
MEV bots can extract value from legitimate users
Unfair profit distribution
Reduced returns for long-term holders
Potential for coordinated sandwich attacks
Manual code review
Understanding of MEV mechanics
Analysis of TokenizedStrategy profit reporting
Implement continuous profit tracking:
Add rate-limiting or timelock on deposits/withdrawals around reports
Consider implementing anti-MEV measures like:
Minimum holding periods
Deposit/withdrawal fees
Time-weighted profit distribution
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.