Description
ZEBRA is a Zcash node written entirely in Rust. Prior to zebrad 5.0.0, halo2_gadgets 0.5.0, orchard 0.14.0, zcash_primitives 0.28.0, and zcashd 6.20.0, the variable-base scalar multiplication gadget in halo2_gadgets/src/ecc/chip/mul/incomplete.rs used assign_advice() for the base point without a copy constraint tying it to the actual base, allowing a malicious prover to produce a valid proof for an Orchard Action with an under-constrained base point and bypass the diversified-address-integrity check that binds pk_d, g_d, ivk, the nullifier (nf), and the spend validating key (ak) to the note being spent. This issue is fixed in zebrad 5.0.0, halo2_gadgets 0.5.0, orchard 0.14.0, zcash_primitives 0.28.0, and zcashd 6.20.0.
Published: 2026-07-17
Score: 9.3 Critical
EPSS: < 1% Very Low
KEV: No
Impact: n/a
Action: n/a
AI Analysis

Impact

The vulnerability arises from a missing copy constraint in the variable‑base scalar multiplication gadget of halo2_gadgets, allowing an attacker to use an under‑constrained base point. This flaw permits a malicious prover to generate a valid proof for an Orchard Action that bypasses the diversified‑address‑integrity check normally binding the recipient’s public key, group element, incoming viewing key, nullifier, and spend validation key to the note being spent. The effect is the ability to forge spend proofs and undermine the soundness of the Orchard protocol, which can lead to unauthorized transfer of funds.

Affected Systems

Vulnerable versions include the ZcashFoundation Zebra node prior to 5.0.0, halo2_gadgets before 0.5.0, orchard before 0.14.0, zcash_primitives before 0.28.0, and zcashd before 6.20.0. All components are part of the official Zcash software stack, so any user running these releases is affected.

Risk and Exploitability

The CVSS v3 score of 9.3 indicates very high severity, while the EPSS score of <1% reflects a low but nonzero probability of exploitation in the near term. The vulnerability is not listed in the CISA KEV catalog. The likely attack vector is inferred to be a custom prover constructing an Orchard transaction proof with an under‑constrained base point; it is unclear whether this requires local execution or can be performed remotely, but any basis to submit such proofs to the network could lead to fraud. No public exploit has been reported, but the risk of unauthorized fund transfer exists if an attacker succeeds.

Generated by OpenCVE AI on July 31, 2026 at 00:01 UTC.

Remediation

No vendor fix or workaround currently provided.

OpenCVE Recommended Actions

  • Upgrade Zebra to version 5.0.0 or newer
  • Upgrade halo2_gadgets to version 0.5.0 or newer
  • Upgrade orchard to version 0.14.0 or newer
  • Upgrade zcash_primitives to version 0.28.0 or newer
  • Upgrade zcashd to version 6.20.0 or newer

Generated by OpenCVE AI on July 31, 2026 at 00:01 UTC.

Tracking

Sign in to view the affected projects.

Advisories
Source ID Title
Github GHSA Github GHSA GHSA-ww9q-8r59-xv46 Zebra: Missing copy constraint in halo2_gadgets variable-base scalar multiplication allows under-constrained base, breaking Orchard Action circuit soundness
History

Tue, 28 Jul 2026 21:00:00 +0000

Type Values Removed Values Added
First Time appeared Zcash
Zcash halo2 Gadgets
Zcash librustzcash
Zcash orchard
Zcash zcash
Zcashfoundation
Zcashfoundation zebra
Vendors & Products Zcash
Zcash halo2 Gadgets
Zcash librustzcash
Zcash orchard
Zcash zcash
Zcashfoundation
Zcashfoundation zebra

Fri, 17 Jul 2026 18:30:00 +0000

Type Values Removed Values Added
Metrics ssvc

{'options': {'Automatable': 'yes', 'Exploitation': 'none', 'Technical Impact': 'partial'}, 'version': '2.0.3'}


Fri, 17 Jul 2026 17:15:00 +0000

Type Values Removed Values Added
Description ZEBRA is a Zcash node written entirely in Rust. Prior to zebrad 5.0.0, halo2_gadgets 0.5.0, orchard 0.14.0, zcash_primitives 0.28.0, and zcashd 6.20.0, the variable-base scalar multiplication gadget in halo2_gadgets/src/ecc/chip/mul/incomplete.rs used assign_advice() for the base point without a copy constraint tying it to the actual base, allowing a malicious prover to produce a valid proof for an Orchard Action with an under-constrained base point and bypass the diversified-address-integrity check that binds pk_d, g_d, ivk, the nullifier (nf), and the spend validating key (ak) to the note being spent. This issue is fixed in zebrad 5.0.0, halo2_gadgets 0.5.0, orchard 0.14.0, zcash_primitives 0.28.0, and zcashd 6.20.0.
Title Missing copy constraint in halo2_gadgets variable-base scalar multiplication allows under-constrained base, breaking Orchard Action circuit soundness
Weaknesses CWE-345
References
Metrics cvssV3_1

{'score': 9.3, 'vector': 'CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:N/I:H/A:L'}


Subscriptions

Zcash Halo2 Gadgets Librustzcash Orchard Zcash
Zcashfoundation Zebra
cve-icon MITRE

Status: PUBLISHED

Assigner: GitHub_M

Published:

Updated: 2026-07-17T17:23:50.731Z

Reserved: 2026-06-15T18:01:15.511Z

Link: CVE-2026-54496

cve-icon Vulnrichment

Updated: 2026-07-17T17:23:39.594Z

cve-icon NVD

No data.

cve-icon Redhat

No data.

cve-icon OpenCVE Enrichment

Updated: 2026-07-31T00:15:05Z

Weaknesses
  • CWE-345

    Insufficient Verification of Data Authenticity