Categories
CVE-2026-52735

Vulnerability in zebra-script (CVE-2026-52735)

Summary

Vulnerability in zebra-script (CVE-2026-52735). Risk of unauthorized operations or information disclosure. Exploitable via zebrad. Mitigation: upgrade to 7.0.0 or later.

Original description

The description as published by the source.

Am I affected

You are affected if:

  1. You run any version of zebrad up to and including v4.4.1.
  2. Your node validates blocks on mainnet, testnet, or any network where both Zebra and zcashd nodes participate.

All default configurations are affected. No feature flags, non-default settings, or special build options are required.

Summary

Zebra's P2SH sigop counter uses a pure-Rust code path that short-circuits on disabled opcodes (such as OP_CODESEPARATOR), returning a partial count of zero for any sigops following the disabled opcode. The reference implementation (zcashd) correctly counts through disabled opcodes in its static sigop analysis. This produces a consensus divergence: Zebra accepts blocks that zcashd rejects when the block-wide MAX_BLOCK_SIGOPS = 20,000 threshold is crossed on one side but not the other.

An attacker can exploit this without mining capability. Broadcasting transactions that spend P2SH outputs with malicious redeem scripts is sufficient; any Zebra miner who includes those transactions in a block triggers a chain split between Zebra and zcashd validators.

Details

The P2SH sigop counter at zebra-script/src/lib.rs:399 calls script::Code(redeemed_bytes).sig_op_count(true), which is a pure-Rust path through zcash_script-0.4.4. The legacy (non-P2SH) sigop counter at lib.rs:282-289 correctly uses the C++ FFI via interpreter.legacy_sigop_count_script(). Only the P2SH path bypasses the FFI.

The Rust parser in `zcash_scrip…

Source: GitHub Security Advisories (Global) NVD GitHub Advisory

Auto-generated summary

Assembled by SecPulse from the source data (CVSS, CWE, affected versions) using templates — no AI involved. Check the original description and references below for exact details.

A vulnerability tracked as CVE-2026-52735 has been found in zebra-script.
Attackers can target a specific entry point like zebrad over the network to misuse the product.
Risk of unauthorized operations or information disclosure.
What to do: upgrade zebra-script to 7.0.0 or later.
If unsure, ask your IT team or search "zebra-script CVE-2026-52735" on the vendor's site.

CVE-2026-52735 (zebra-script) — CWE-684
Attack surface: zebrad / OP_CODESEPARATOR / OP_CAT / OP_SUBSTR
Patched: 7.0.0 — apply immediately
Workaround: There is no configuration-level workaround.
Plan: 1) Audit SBOM/dependencies, 2) Stage→prod upgrade, 3) Add WAF/proxy monitoring on affected endpoints, 4) Hunt IOCs in logs.
Refs: see the GHSA / vendor advisory / patched release linked on this page.

❓ What is the problem

A vulnerability (CWE-684) exists in zebra-script. Attackers reach the vulnerable code path via zebrad.

📍 Affected scope

Check the vendor advisory for the affected versions of zebra-script. Attack surface: zebrad / OP_CODESEPARATOR / OP_CAT / OP_SUBSTR.

🔥 Severity

Severity: ?. Risk of unauthorized operations or information disclosure.

🔧 How to fix

Update to 7.0.0.

🛡️ Workaround

Workaround: There is no configuration-level workaround.

🔍 Detection

Search webserver/proxy logs for unusual request patterns matching this CVE's known IOCs. Run grep -r 'zebra-script' . against your dependency files (package-lock.json, requirements.txt, go.sum) to find affected services.

Response actions

Concrete steps and command examples for SOC/SRE teams to execute in order

  1. 1
    Identify exposure identify
    grep -r 'zebra-script' . | grep -v node_modules

    リポジトリと本番環境の依存ファイル (package-lock.json / requirements.txt / go.sum / Gemfile.lock 等) で zebra-script を grep し、稼働しているサービス・バージョンを把握する。

  2. 2
    Apply temporary workaround mitigate
    There is no configuration-level workaround.

    パッチが適用されるまでの応急処置として、There is no configuration-level workaround. を実施。回避策の副作用 (機能低下) を確認した上で。

  3. 3
    Apply patch patch
    Upgrade zebra-script to 7.0.0

    ステージング環境で 7.0.0 に上げて回帰テスト → 本番反映。回帰テストはアプリの主要ハッピーパスを含めること。

  4. 4
    Post-deployment verification verify
    Confirm patched version is live in production

    パッチ適用後、ステージングで PoC または同等の悪用パターンを再現して脆弱性が閉じたことを確認。本番ではアクセスログ・WAF でアラート再発が無いか継続監視。

Affected packages

rust zebra-script
[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"7.0.0"}]}]
rust zebrad
[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"4.5.0"}]}]
crates.io zebra-script
[{"type":"SEMVER","events":[{"introduced":"0"},{"fixed":"7.0.0"}]}]
crates.io zebrad
[{"type":"SEMVER","events":[{"introduced":"0"},{"fixed":"4.5.0"}]}]

References

We use cookies for analytics and ad measurement. This setting applies to all Game co., Ltd. sites. Details