← All Advisories

Zebra Zcash Node Allocates a Full Over-Limit addr/addrv2 Vector Before Enforcing the 1,000-Message Cap, Allowing Memory Exhaustion via a Small Number of Large Messages

Last refreshed2026-09-30

Status: UPDATED  |  Advisory ID: CVE-2026-40881

Key Details

CVECVE-2026-40881
CVSS Score / Version7.5 (High) / CVSS v3.1
Updated2026-06-17
CVSS VectorCVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
CVSS Proseattack vector is network; attack complexity is low; privileges required is none; user interaction is none; scope is unchanged; confidentiality impact is none; integrity impact is none; availability impact is high.
Affected productszfnd zebra-network and zfnd zebrad
Classified asCWE-770 (Allocation of Resources Without Limits or Throttling)

Affected Products, Subsystems & Sectors

VendorProductAffected VersionsPatch Status
zfndzebra-network
zfndzebrad
SubsystemsGeneral OT
SectorsMultiple

What to Know

ZEBRA is a Zcash node written entirely in Rust. Prior to zebrad version 4.3.0 and zebra-network version 5.0.1, when deserializing addr or addrv2 messages, which contain vectors of addresses, Zebra would fully deserialize them up to a maximum length (over 233,000) that was derived from the 2 MiB message size limit. This is much larger than the actual limit of 1,000 messages from the specification. Zebra would eventually check that limit but, at that point, the memory for the larger vector was already allocated. An attacker could cause out-of-memory aborts in Zebra by sending multiple such messages over different connections. This vulnerability is fixed in zebrad version 4.3.0 and zebra-network version 5.0.1. (NVD)

What to Do

Monitor zfnd's web page for any future patch releases. See vendor advisory link below.

References

SourceReference
NVDhttps://nvd.nist.gov/vuln/detail/CVE-2026-40881
CVEhttps://www.cve.org/CVERecord?id=CVE-2026-40881
Vendor advisoryhttps://github.com/ZcashFoundation/zebra/security/advisories/GHSA-xr93-pcq3-pxf8