Reproduced Exploit
Burve — DoS on `mint()` and `burn()` due to overestimation of available liquidity
1. Every mint/burn runs compoundV3Ranges → collectAndCalcCompound. 2. With 2 equal ranges and 1 wei residual, nominal liq is computed as 14. 3. Real mintable liquidity is 0 (1 wei cannot split across 2 ranges). 4. Compound tries to transfer more than available → "STF" → mint/burn DoS.
Chain
Other
Category
untagged
Date
Mar 2025
Source
AuditVault
EVM Playground
Source-level debugger — step opcodes and Solidity in sync
The attack is replayed in an in-browser EVM preloaded with the exact dumped fork state. The execution tree shows every call; step by Solidity line or by opcode across all depths — source, Stack, Memory, Storage, Balances (native / ERC-20 / NFT), Transient storage and Return value stay in sync. Click a tree node, opcode, or source line to jump. No backend, no live RPC.
Source & credit. Reproduction of a public audit finding curated by AuditVault — the original finding: 57722-h-01-dos-on-mint-and-burn-due-to-overestimation-of-available. Standalone Foundry PoC and full write-up: 57722-h-01-dos-on-mint-and-burn-due-to-overestimation-of-available_exp in the
evm-hack-registrymirror.
Vulnerability classes: dos-resistance · rounding-direction · fee-calculation · fix-arithmetic
Reproduction: self-contained Foundry PoC, offline, forge-std only. Full trace: output.txt.
Key info#
| Impact | HIGH — mint and burn revert while dust residual remains |
| Protocol | Burve single (Uniswap V3 multi-range compounder) |
| Vulnerable code | collectAndCalcCompound overestimates mintable liquidity from dust |
| Bug class | Liquidity overestimate → transfer fail ("STF") → DoS |
| Finding | Pashov Audit Group — Burve, Mar 2025 · #57722 · H-01 |
| Report | Burve-security-review_2025-03-05 |
| Compiler | ^0.8.24 (PoC) |
TL;DR#
- Every
mint/burnrunscompoundV3Ranges→collectAndCalcCompound. - With 2 equal ranges and 1 wei residual, nominal liq is computed as 14.
- Real mintable liquidity is 0 (1 wei cannot split across 2 ranges).
- Compound tries to transfer more than available →
"STF"→ mint/burn DoS.
The vulnerable code#
mintNominalLiq = nominal - 2 * rangeCount; // @> VULN: residual treated as fully mintable
// later:
if (req0 > residual0) revert("STF");
Fix: dust floor or caller-supplied compound liquidity cap.
Diagrams#
Impact#
Liveness failure on entry and exit; attacker can frontrun with dust donations.
Sources#
Sources & further analysis#
Reproductions & code
- Standalone PoC + full trace: 57722-h-01-dos-on-mint-and-burn-due-to-overestimation-of-available_exp (evm-hack-registry mirror).
- AuditVault finding: 57722-h-01-dos-on-mint-and-burn-due-to-overestimation-of-available.
Alerts & third-party analyses
These dashboards index community alerts tweets, post-mortems, and independent write-ups. Reach them through the protocol name above to cross-check this reproduction against other analyses.