CVEReports
CVEReports

Automated vulnerability intelligence platform. Comprehensive reports for high-severity CVEs generated by AI.

Product

  • Home
  • Sitemap
  • RSS Feed

Company

  • About
  • Contact
  • Privacy Policy
  • Terms of Service

© 2026 CVEReports. All rights reserved.

Made with love by Amit Schendel & Alon Barad



GHSA-452V-W3GX-72WG

GHSA-452v-w3gx-72wg: Remote Denial of Service via Identity Point Panic in Zebra Zcash Node

Alon Barad
Alon Barad
Software Engineer

Apr 19, 2026·6 min read·27 visits

Executive Summary (TL;DR)

An unauthenticated remote attacker can crash a vulnerable Zebra node by broadcasting a crafted Orchard transaction where the `rk` field is the identity point. This triggers an `.unwrap()` panic in the underlying `orchard` crate, leading to immediate process termination.

The Zebra Zcash node implementation is vulnerable to a critical remote denial-of-service attack due to a logic error in Orchard transaction verification. An unhandled exception occurs when processing the randomized validating key (`rk`) if it is set to the Pallas curve identity point.

Vulnerability Overview

Zebra is a prominent Rust-based implementation of the Zcash node protocol developed by the Zcash Foundation. The node handles complex cryptographic validations for shielded transactions, specifically utilizing the Orchard protocol. Orchard transactions require rigorous verification of zero-knowledge proofs to maintain ledger integrity and privacy.

Vulnerability GHSA-452v-w3gx-72wg represents a critical denial-of-service condition affecting all Zebra node versions prior to 4.3.1. The flaw resides in the handling of the randomized validating key, denoted as rk, within the Orchard bundle of a Zcash transaction. When a malicious transaction supplies a specific mathematical edge case for this key, it triggers an unhandled exception in the underlying cryptography libraries.

The vulnerability is classified as CWE-248: Uncaught Exception. Exploitation requires no authentication, user interaction, or elevated privileges, allowing an attacker to remotely crash nodes by broadcasting a single crafted transaction over the peer-to-peer network.

Root Cause Analysis

The root cause originates in the orchard Rust crate, specifically within the circuits.rs file responsible for verifying Orchard signatures. The randomized validating key rk is represented mathematically as an elliptic curve point on the Pallas curve. The specification originally allowed the identity point, a theoretical zero value in the elliptic curve group, to be passed as a valid rk value.

To perform signature verification, the node must convert the rk point into its affine coordinates, denoted as (x, y). The identity point is the point at infinity and fundamentally lacks finite affine coordinates. When the extraction function is called on the identity point, it correctly returns an Option type containing None.

A logic error exists where the developer assumed the extraction function would always return Some coordinate pair. The code appends .unwrap() to the extraction call. In Rust, calling .unwrap() on a None value immediately triggers a fatal panic, terminating the entire node process.

This panic bypasses all graceful error handling mechanisms within the Zebra node. Because the transaction validation occurs on the main or heavily relied-upon worker threads, the panic results in instantaneous node termination.

Code Analysis

The vulnerable pattern in the orchard crate involves blind coordinate extraction. The exact flawed logic operates on the Pallas curve point structure, executing an unwrap operation on an expected Option or Result type.

// Representative vulnerable logic pattern in orchard crate
let rk_point = parse_point(transaction.rk);
let (x, y) = rk_point.to_affine().unwrap(); // Panics if rk_point is identity
verify_signature(x, y, signature);

Addressing the issue by modifying the orchard crate directly posed coordination risks and potential early disclosure. The Zebra development team opted to implement the fix at the transaction parsing boundary. The patched code intercepts the transaction during deserialization and validates the rk value before it ever reaches the orchard crate.

The patch introduces an explicit check against the Pallas curve identity point. If the rk value evaluates to the identity point, the Zebra node rejects the transaction outright with a defined error state.

// Patched parsing logic in zebra-chain
let rk_point = parse_point(transaction.rk);
if bool::from(rk_point.is_identity()) {
    return Err(TransactionError::InvalidOrchardRk);
}
// Proceed to safe verification

Exploitation

An attacker exploits this vulnerability by constructing a malicious Zcash transaction containing an Orchard shielded bundle. The attacker sets the rk field within this bundle to the encoded representation of the Pallas curve identity point. The remainder of the transaction does not need to be mathematically sound, provided it bypasses initial pre-flight checks.

Once constructed, the attacker broadcasts the transaction to the Zcash peer-to-peer network. The attack requires no special network position, as standard node gossip protocols will propagate the malicious transaction to vulnerable Zebra nodes.

When a vulnerable node receives the transaction into its mempool, it begins the verification process. The parsing phase passes the malformed rk to the orchard crate, triggering the unwrap panic and immediately crashing the node.

A variant of this attack involves mining the malicious transaction into a block using a custom or non-vulnerable mining setup. If the transaction is embedded in the blockchain, any vulnerable Zebra node attempting to sync that block will deterministically crash. This creates a persistent denial-of-service condition, rendering the node permanently incapable of syncing past that specific block height.

Impact Assessment

The denial-of-service impact is critical, carrying a CVSS 4.0 score of 8.7. The vulnerability allows remote attackers to unconditionally terminate the zebrad process on demand. Because the exploit relies solely on standard network communication, the attack surface encompasses the entire public Zcash network running vulnerable software.

Immediate node crashes disrupt active services relying on the node, including wallets, exchanges, and block explorers. In a transient attack via the mempool, the node operator can restart the service, but the node remains vulnerable to repeated broadcasts.

The highest impact scenario involves a malicious miner embedding the trigger transaction into the permanent ledger. This action forces all vulnerable nodes into a persistent crash loop upon block synchronization. Such an event fractures network consensus, as Zebra nodes fail to progress while updated nodes or different implementations continue processing the chain.

Remediation

The immediate mitigation requires all node operators to upgrade to Zebra version 4.3.1. This release contains the parsing-layer checks that safely reject identity rk values without invoking the vulnerable code path in the orchard crate.

No effective configuration workarounds exist for prior versions. The vulnerability triggers during fundamental transaction processing, which cannot be disabled without rendering the node non-functional on the Zcash network.

In parallel with the software patch, the Zcash Foundation and the developers of zcashd coordinated a formal update to the Zcash protocol specification. The specification now explicitly forbids the use of the identity point as a valid randomized validating key across all implementations.

Security operations teams should monitor system logs for unexpected process terminations associated with the Zebra node. Specifically, logging systems should alert on Rust panics originating from the orchard crate or circuits.rs, as these strongly indicate an active exploitation attempt against unpatched infrastructure.

Technical Appendix

CVSS Score
8.7/ 10
CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:H

Affected Systems

Zebra (zebrad)Zebra (zebra-chain)Zcash network nodes

Affected Versions Detail

Product
Affected Versions
Fixed Version
Zebra
Zcash Foundation
< 4.3.14.3.1
AttributeDetail
CWE IDCWE-248
Attack VectorNetwork
CVSS 4.08.7
ImpactDenial of Service
Exploit Statusnone
KEV StatusNot Listed

MITRE ATT&CK Mapping

T1498Network Denial of Service
Impact
T1499Endpoint Denial of Service
Impact
CWE-248
Uncaught Exception

Panic due to .unwrap() on a None value when extracting coordinates.

Vulnerability Timeline

Zebra v4.3.1 Released
2026-04-17
Advisory Published
2026-04-18

References & Sources

  • [1]GitHub Security Advisory GHSA-452v-w3gx-72wg
  • [2]Official Zebra Release v4.3.1
  • [3]Zcash Community Forum Announcement
  • [4]OSV Record

Attack Flow Diagram

Press enter or space to select a node. You can then use the arrow keys to move the node around. Press delete to remove it and escape to cancel.
Press enter or space to select an edge. You can then press delete to remove it or escape to cancel.

More Reports

•3 days ago•CVE-2026-87697
8.8

CVE-2026-87697: Untrusted Deserialization in .NET PresentationCore Clipboard Handling

A remote code execution vulnerability exists in Microsoft .NET due to untrusted data deserialization within the PresentationCore component. The flaw stems from implicit auto-conversion flags during clipboard data retrieval operations.

Alon Barad
Alon Barad
21 views•5 min read
•3 days ago•CVE-2026-70007
8.8

CVE-2026-70007: Out-of-Bounds Write Vulnerability in .NET Framework and WPF Subsystem

An out-of-bounds write vulnerability in Microsoft .NET Framework, .NET runtime, and Visual Studio allows unauthenticated remote attackers to execute arbitrary code via crafted pixel-shader bytecode or auto-converted clipboard payloads.

Amit Schendel
Amit Schendel
11 views•6 min read
•3 days ago•CVE-2026-70186
7.5

CVE-2026-70186: ASP.NET Core Denial of Service Vulnerability via Framework Deadlock

ASP.NET Core contains a thread deadlock vulnerability (CWE-833) that allows an unauthenticated remote attacker to cause a denial of service over the network by exhausting server thread pool resources.

Amit Schendel
Amit Schendel
11 views•5 min read
•3 days ago•CVE-2026-70035
8.8

CVE-2026-70035: Insecure Deserialization Remote Code Execution in Microsoft .NET Framework and .NET Runtime

CVE-2026-70035 is a high-severity Remote Code Execution (RCE) vulnerability in Microsoft .NET Framework, .NET runtime, and Visual Studio caused by improper handling during the deserialization of untrusted data (CWE-502). An unauthenticated attacker can execute arbitrary code within the context of the affected process by delivering a crafted serialized payload.

Amit Schendel
Amit Schendel
18 views•6 min read
•3 days ago•CVE-2026-70183
7.5

CVE-2026-70183: Elevation of Privilege in ASP.NET Core and Visual Studio via Concurrent Race Condition

An elevation of privilege vulnerability exists in ASP.NET Core and Microsoft Visual Studio due to improper synchronization during concurrent thread execution. Authenticated remote attackers with low privileges can exploit a timing window to manipulate shared resources and assume higher-level execution contexts.

Alon Barad
Alon Barad
14 views•5 min read
•6 days ago•CVE-2026-107844
5.3

CVE-2026-107844: Path Traversal Vulnerability in Contao ImagesController

A path traversal vulnerability (CWE-22) in Contao CMS allows unauthenticated remote attackers to bypass directory boundary restrictions in ImagesController and access files within the project directory.

Amit Schendel
Amit Schendel
23 views•5 min read