Zebra, Allocation Amplification, CVE-2026-44500 (Moderate)

Listen to this Post

How the CVE works:

Zebra’s network deserializers used generic allocation ceilings instead of protocol-specific limits. The `TrustedPreallocate` path for `headers` messages allowed up to ~1,409 entries, while the send-side cap is 160 (8.8x gap). Equihash solutions deserialized as `Vec` up to block-size ceiling (~2 MiB) before consensus length check (1344 bytes). Sapling spend vectors in V5/V4 coinbase transactions allocated ~5,681 or ~5,208 entries before the rule “zero spends in coinbase” was enforced. Coinbase script bytes deserialized up to message-size cap before consensus range (2-100 bytes) was applied. All four cases are reachable pre-handshake (headers) or post-handshake. An attacker sends a crafted message with inflated length fields. The deserializer preallocates memory against the loose ceiling, parses, then rejects. Amplification per message is bounded by transport 2 MiB, but cumulative across peers causes DoS. No authentication required. Fixed in Zebra 4.4.0 by applying tight protocol limits before allocation.

dailycve form:

Platform: Zebra node
Version: All before 4.4.0
Vulnerability: Allocation amplification DoS
Severity: Moderate
date: 2026-05-08

Prediction: Expected patch 2026-05-15

What Undercode Say:

Check Zebra version
zebrad --version | grep -E "zebrad [0-9]+.[0-9]+.[0-9]+"
Monitor memory spikes from malicious peers
while true; do ps aux | grep zebrad | awk '{print $6}' | head -1; sleep 1; done
Simulate amplification detection (Rust snippet)
let max_headers = if peer.is_inbound() { 160 } else { 1409 };
assert!(counted_headers.len() <= max_headers);

Exploit:

PoC: Send headers message with count=1409 (pre-handshake)
import socket
s = socket.socket()
s.connect(("target", 8233))
Craft compactSize 0xFD 0x81 0x0B (1409) + dummy headers
payload = b"\xFD\x81\x0B" + b"\x00"1409128 each header ~128 bytes
s.send(payload)

Protection from this CVE:

Upgrade to Zebra 4.4.0 or later immediately. No workarounds exist. After upgrade, inbound deserializers enforce protocol ceilings before allocation: MAX_FIND_BLOCK_HEADERS_RESULTS=160, exact Equihash length, zero Sapling spends in coinbase, and coinbase script length 2-100 bytes.

Impact:

Denial of Service – An unauthenticated peer forces amplified per-message memory allocation and parsing cost. Multi-peer fan-in magnifies effect, potentially exhausting node RAM and CPU, causing crash or unresponsiveness. No data corruption or remote code execution.

🎯Let’s Practice Exploiting & Learn Patching For Free:

Sources:

Reported By: github.com
Extra Source Hub:
Undercode

🔐JOIN OUR CYBER WORLD [ CVE News • HackMonitor • UndercodeNews ]

💬 Whatsapp | 💬 Telegram

📢 Follow DailyCVE & Stay Tuned:

𝕏 formerly Twitter 🐦 | @ Threads | 🔗 Linkedin Featured Image

Scroll to Top