Skip to content
OpenAdvisories
Medium · 5.3 CVE-2026-52732 EUVD-2026-61170GHSA-4fc2-h7jh-287c

ZEBRA: Mempool transaction admission denial via single-peer inbound queue saturation

Published Aug 18, 2026 · Updated Aug 18, 2026 · Assigned by GitHub_M

Description

ZEBRA is a Zcash node written entirely in Rust. Prior to 4.5.0, one unauthenticated P2P peer can monopolize all 25 MAX_INBOUND_CONCURRENCY slots in Zebra's inbound mempool download and verification pipeline. In zebrad/src/components/mempool/downloads.rs, the bounded queue was shared globally without per-peer accounting, while peer identity was not carried through Gossip and FullQueue responses were mapped to Response::Nil instead of reaching overload disconnection handling. An attacker can advertise fake transaction identifiers and remain silent so each task holds a slot until TRANSACTION_DOWNLOAD_TIMEOUT, then periodically refill the queue as slots expire. While saturated, honest peer transactions and local sendrawtransaction requests are rejected with MempoolError::FullQueue, although block validation and synchronization continue. This issue is fixed in version 4.5.0.

Affected products

VendorProductAffectedFixed
ZcashFoundation zebra < 4.5.0 —

Affected packages

EcosystemPackageAffectedFixedRecord
crates.io zebrad < 4.5.0 4.5.0 GHSA-4fc2-h7jh-287c

References