CVE-2026-40881
Received Received - Intake
Out-of-Memory in Zebra Node via addr Message Deserialization

Publication date: 2026-04-21

Last updated on: 2026-04-27

Assigner: GitHub, Inc.

Description
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.
CVSS Scores
EPSS Scores
Probability:
Percentile:
Meta Information
Published
2026-04-21
Last Modified
2026-04-27
Generated
2026-05-07
AI Q&A
2026-04-22
EPSS Evaluated
2026-05-05
NVD
Affected Vendors & Products
Showing 2 associated CPEs
Vendor Product Version / Range
zfnd zebra-network to 5.0.1 (exc)
zfnd zebrad to 4.3.1 (exc)
Helpful Resources
Exploitability
CWE
CWE Icon
KEV
KEV Icon
CWE ID Description
CWE-770 The product allocates a reusable resource or group of resources on behalf of an actor without imposing any intended restrictions on the size or number of resources that can be allocated.
Attack-Flow Graph
AI Powered Q&A
How does this vulnerability affect compliance with common standards and regulations (like GDPR, HIPAA)?:

This vulnerability causes a denial of service (DoS) by exhausting memory resources, leading to Zebra node crashes. It does not impact confidentiality or integrity of data.

Since the vulnerability does not affect data confidentiality or integrity, it does not directly compromise compliance with standards like GDPR or HIPAA, which primarily focus on protecting personal data privacy and security.

However, the availability impact caused by this DoS could indirectly affect service reliability requirements under some regulations.


Can you explain this vulnerability to me?

CVE-2026-40881 is a moderate severity denial of service vulnerability in the Zebra cryptocurrency node software, which is written in Rust. The issue occurs during the deserialization of addr or addrv2 messages that contain vectors of network addresses.

Zebra calculates the maximum allowed vector size based on the 2 MiB message size limit, resulting in a maximum allocation of over 233,000 entries. However, the Zcash protocol specification limits these messages to a maximum of 1,000 addresses.

Zebra only checks the 1,000-entry limit after fully deserializing and allocating memory for the larger vector, which allows an attacker to send messages with excessively large vectors. This causes the node to allocate excessive memory and potentially crash due to out-of-memory aborts.

The vulnerability affects Zebra versions prior to 4.3.1 and was fixed by enforcing the 1,000-entry limit before deserialization to prevent excessive memory allocation.


How can this vulnerability impact me? :

This vulnerability can be exploited by an attacker to cause a denial of service (DoS) on Zebra nodes by sending specially crafted addr or addrv2 messages with excessively large vectors of addresses.

The impact is that the Zebra node software may crash due to out-of-memory aborts caused by resource exhaustion from allocating memory for these large vectors.

There is no impact on confidentiality or integrity, but availability of the node is affected, potentially disrupting network operations.


How can this vulnerability be detected on my network or system? Can you suggest some commands?

This vulnerability involves Zebra nodes deserializing addr or addrv2 messages with excessively large vectors of addresses, leading to out-of-memory crashes. Detection would involve monitoring for unusually large addr or addrv2 messages or repeated connection attempts sending such messages.

Since the vulnerability is triggered by addr/addrv2 messages containing more than 1,000 addresses but up to over 233,000 entries allocated before rejection, network monitoring tools could be used to inspect message sizes and counts of addresses in these messages.

Specific commands are not provided in the resources, but general approaches include:

  • Using packet capture tools (e.g., tcpdump, Wireshark) to filter and analyze addr/addrv2 messages for abnormal sizes.
  • Monitoring Zebra node logs for out-of-memory aborts or crashes related to addr/addrv2 message processing.
  • Implementing network intrusion detection rules to alert on addr/addrv2 messages exceeding the protocol limit of 1,000 addresses.

What immediate steps should I take to mitigate this vulnerability?

The primary and recommended mitigation is to upgrade Zebra node software to versions that include the fix:

  • Upgrade zebrad to version 4.3.1 or later.
  • Upgrade zebra-network to version 5.0.1 or later.

These versions enforce the protocol limit of 1,000 addresses before deserialization, preventing excessive memory allocation and out-of-memory crashes.

No other workarounds or mitigations are available, so immediate upgrade is strongly advised.


Ask Our AI Assistant
Need more information? Ask your question to get an AI reply (Powered by our expertise)
0/70
EPSS Chart