# Aleo prover/network DOS vector due to invalid `split` proofs being free to abuse

Single-transition split transactions require no fee commitment, letting attackers submit invalid proofs that waste prover CPU for free, enabling network DoS.

- Payout: Contest reward
- Severity: high
- Program: Aleo
- Credited: dtheo
- Disclosed: 2024-05-27
- Write-up quality: 7/10
- Original: https://github.com/sherlock-audit/2024-05-aleo-judging/issues/34
- Library page: https://bugbountylibrary.com/r/sherlock%3A2024-05-aleo%3AH-1
- Tags: domain:web3 impact:dos kind:contest platform:sherlock sev:high tech:rust technique:source-review vuln:dos

**Target:** snarkVM transaction verification / split transaction fee handling
**Root cause:** Single split transactions skip the fee commitment; the fee is burned inside the split function, so if funds are insufficient and the proof fails there is no backup fee commitment to seize, allowing free invalid-proof submission.
**Steps:**
1. Create many private records each holding at least 1 microcredit, paying initial fees once.
2. Craft a transaction containing only a single `split` transition with an invalid proof.
3. Ensure each credit record is used only once per block to pass prechecks.
4. Broadcast; `check_fee`/`check_transaction` pass, then proof verification in trace/mod.rs burns prover CPU.
5. Repeat across many provers to stall block production.
**How found:** Code review of verify.rs fee-commitment logic and credits.aleo split function, noticing the special-case exemption for single split transactions and the absence of a seizable backup fee when the burn fails.
**Exploitation:** Attacker pre-funds many 1-microcredit private records, then repeatedly broadcasts single-transition split transactions with invalid proofs. Prechecks pass because no fee commitment is required; provers waste CPU verifying invalid proofs with no monetary loss to attacker, slowing or halting block production.
**Escalation:** Attacking all provers simultaneously could stop Aleo block production entirely.
**Insight:** Look for special-cased transaction types exempted from fee/collateral requirements; if the fee is only burned inside the failing path, invalid submissions become free and can be used to grief verifiers.
