anticsdecoded|Portfolio
SEC|2026
/audits / ZEBRA.rs
cat /audits/ZEBRA.rs
NODE: DISCLOSURE

Zcash full node / Mempool

// engagement
protocolZebra
categoryZcash full node / Mempool
kinddisclosure · Zcash Foundation
date2026-08
duration1 week
languageRust
chainsZcash
nSLOC1,080
// findingsNODE: 1 FND
critical0
high0
medium1
low0
info0
gas0
// summary

Coordinated disclosure to the Zcash Foundation for Zebra (zebrad), the Rust Zcash full node, focused on the mempool transaction-download pipeline. Resulted in CVE-2026-52734 (GHSA-65jj-fmw8-468q), fixed in zebrad 4.5.0.

// methodology
  • Manual review
  • PoC development
  • P2P/mempool analysis
// scope
pathnsloc
zebrad/src/components/mempool/downloads.rs300
zebrad/src/components/mempool.rs780
total1,080
// findings
M-01mediumfixed

Unbounded mempool memory leak via timeout path

In `Downloads::poll_next()` the success and error arms remove the `cancel_handles` entry (each holding up to ~2 MB) but the 73-second timeout arm returns without cleanup because `tokio` `Elapsed` carries no `UnminedTxId`, so ordinary unauthenticated P2P traffic leaks memory without bound (~685 KB/s per connection) until the node is OOM-killed. Tracked as CVE-2026-52734 / GHSA-65jj-fmw8-468q; fixed in zebrad 4.5.0.