CVE-2026-44498: ZEBRA: Block Validator Undercounts Coinbase and P2SH Sigops

Published May 7, 2026
·
Updated

ZEBRA is a Zcash node written entirely in Rust. Prior to version 4.4.0, Zebra's block validator undercounts transparent signature operations against the 20000-sigop block limit (MAXBLOCKSIGOPS), 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. This issue has been patched in version 4.4.0.

Other sources

Zebra's block validator undercounts transparent signature operations against the 20000-sigop block limit (MAXBLOCKSIGOPS), 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

- MAXBLOCKSIGOPS 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. - 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 MAXBLOCKSIGOPS.

— GitHub

Affected Software

2 affected componentsFixes available
rust/zebrad<4.4.0
4.4.0
zfnd Zebrad Rust<4.4.0

Event History

May 7, 2026
Advisory Published
via GitHub·08:54 PM
Data Sourced
via GitHub·08:54 PM
DescriptionWeaknessAffected Software
May 8, 2026
CVE Published
via MITRE·03:09 PM
Data Sourced
via MITRE·03:09 PM
DescriptionWeakness
Data Sourced
via NVD·03:17 PM
DescriptionSeverityWeaknessAffected Software

Frequently Asked Questions

1

What is the severity of CVE-2026-44498?

CVE-2026-44498 has a moderate severity rating due to its potential to disrupt blockchain integrity by allowing blocks with undercounted signature operations.

2

How do I fix CVE-2026-44498?

To fix CVE-2026-44498, upgrade the Zebrad software to version 4.4.0 or later, which addresses the vulnerability.

3

What impact does CVE-2026-44498 have on Zcash transactions?

CVE-2026-44498 can lead to incorrect validation of blocks, impacting the security and validity of Zcash transactions.

4

Which versions of Zebrad are affected by CVE-2026-44498?

All versions of Zebrad prior to 4.4.0 are affected by CVE-2026-44498.

5

Is there a workaround for CVE-2026-44498?

There are no known workarounds for CVE-2026-44498, and users are advised to upgrade to a patched version.

Contact

SecAlerts Pty Ltd.
132 Wickham Terrace
Fortitude Valley,
QLD 4006, Australia
info@secalerts.co
By using SecAlerts services, you agree to our services end-user license agreement. This website is safeguarded by reCAPTCHA and governed by the Google Privacy Policy and Terms of Service. All names, logos, and brands of products are owned by their respective owners, and any usage of these names, logos, and brands for identification purposes only does not imply endorsement. If you possess any content that requires removal, please get in touch with us.
© 2026 SecAlerts Pty Ltd.
ABN: 70 645 966 203, ACN: 645 966 203