Loading...
Skip to main content

CVE-2026-44498 — Vulnerability in zebrad — CVE Details

CRITICAL

Zebra's Block Validator Undercounts Coinbase and P2SH Sigops

Published May 7, 2026Updated May 13, 2026Source: osv

Summary

Zebra's block validator undercounts transparent signature operations against the 20000-sigop block limit (`MAX_BLOCK_SIGOPS`), allowing it to accept blocks that `zcashd` rejects with `bad-blk-sigops`. A miner who produces such a block can split the network: Zebra nodes follow the offending chain while `zcashd` nodes do not. Two distinct undercounts: #### A: Coinbase Hidden Legacy Sigops `zcashd`'s `GetLegacySigOpCount()` includes the coinbase input's `scriptSig`. Zebra's `Sigops` impl skipped the coinbase input entirely, so up to ~98 sigops (the 100-byte coinbase script length cap, less the height prefix) could be hidden inside the coinbase `scriptSig` without being charged against the block limit. #### B: Aggregate P2SH Sigops. `zcashd`'s `GetP2SHSigOpCount()` parses each P2SH input's redeem script with `accurate=true` and sums those sigops into the block-wide total via `ConnectBlock`. The check is per-block, not per-transaction, and the limit applies regardless of who mines the offending block — a miner just needs to include enough P2SH-spending transactions whose redeem scripts together exceed 20000 sigops. Zebra computed P2SH sigops only on the mempool-acceptance path (used for ZIP-317 weighting) and never accumulated them during block validation. A block whose aggregate redeem-script sigops exceed 20000 (e.g. 1334 P2SH spends × 15 sigops = 20010) would be accepted by Zebra and rejected by `zcashd`. ### Patches Fixed in this release: https://github.com/ZcashFoundation/zebra/releases/tag/v4.4.0. ### Workarounds None. Operators relying on Zebra for consensus should upgrade. ### Resources - `MAX_BLOCK_SIGOPS` constant inherited from Bitcoin via the Zcash protocol spec's §7.6 catch-all "Other rules inherited from Bitcoin", tracked for explicit documentation in [zcash/zips#568](https://github.com/zcash/zips/issues/568). - `zcashd` `GetLegacySigOpCount`: <https://github.com/zcash/zcash/blob/v6.11.0/src/main.cpp#L826-L836> - `zcashd` `GetP2SHSigOpCount`: <https://github.com/zcash/zcash/blob/v6.11.0/src/main.cpp#L840-L852> - `zcashd` `ConnectBlock` aggregates per-tx sigops and compares against `MAX_BLOCK_SIGOPS`.

Advisory Timeline

  • First published May 7, 2026 (158 days ago).
  • Last revised May 13, 2026 — 6 days after initial publication.

Remediation

Upgrade to the fixed version using your package manager.

Cargo
Update zebrad to 4.4.0 or later
cargo update -p zebrad --precise 4.4.0

After upgrading, run your dependency scanner again to confirm the vulnerability is resolved.

Affected Packages (1)

Affects 1 ecosystem: crates.io (1).

PackageEcosystemAffectedFixed In
zebrad
crates.io
All versions4.4.0

Vulnerability Classification

Common Weakness Enumeration (CWE) identifiers for this vulnerability type.

CVSS Score Breakdown

What the CVSS (Common Vulnerability Scoring System) 7.5 score means for each attack dimension.

Attack Vector
Network
Attack Complexity
Low
Privileges Required
None
User Interaction
None
Scope
Unchanged
Confidentiality
None
Integrity
High
Availability
None

CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:H/A:N

Frequently Asked Questions

What is CVE-2026-44498?
Zebra's Block Validator Undercounts Coinbase and P2SH Sigops This vulnerability has been assigned a severity rating of CRITICAL (CVSS score: 7.5/10).
How do I check if my project is affected by CVE-2026-44498?
CVE-2026-44498 affects zebrad. Use GeekWala's free vulnerability scanner to check your dependencies against CVE-2026-44498 and 200,000+ other known vulnerabilities.

Severity & Exploitability

CVSS Score
7.5

High exploitability or significant impact. Prioritize remediation within days.

Also Known As

GHSA-jv4h-j224-23cc

Related CVEs

  • CVE-2026-34202
    CRITICAL

    Zebra node crash — V5 transaction hash panic (P2P reachable)

  • CVE-2026-54496
    CRITICAL

    Zebra: Missing copy constraint in halo2_gadgets variable-base scalar multiplication allows under-constrained base, breaking Orchard Action circuit soundness

  • CVE-2026-34377
    HIGH

    Zebra has a Consensus Failure due to Improper Verification of V5 Transactions

  • CVE-2026-40880
    HIGH

    Zebra: Cached Mempool Verification Bypasses Consensus Rules for Ahead-of-Tip Blocks

  • CVE-2026-41585
    MEDIUM

    Zebra Vulnerable to Denial of Service via Interrupted JSON-RPC Requests from Authenticated Clients

  • CVE-2026-52733
    MEDIUM

    zebrad has persistent on-disk corruption of Sapling/Orchard subtree roots after chain fork via pop_tip

  • CVE-2026-44500
    MEDIUM

    Zebra Vulnerable to Allocation Amplification in Inbound Network Deserializers

  • CVE-2026-52731
    MEDIUM

    zebrad has full node denial of service via non-ASCII LongPollId in getblocktemplate

Check if you're affected

Scan your dependencies to see if this vulnerability affects your projects.

Scan Your Dependencies