---
id: CVE-2026-52736
title: ZEBRA is a Zcash node written entirely in Rust
summary: >-
  ZEBRA is a Zcash node written entirely in Rust. Prior to 4.5.0, a remote
  unauthenticated P2P peer can stall a Zebra node by racing an invalid block
  body against the valid canonical body for the same block header hash. ZIP-244
  permits the…
severity: high
cwe:
  - CWE-459
vendor: zebra-state
product: zebra-state
affected:
  - zebra-state <= 6.0.0
  - zebrad <= 4.4.1
patched:
  - zebra-state 7.0.0
  - zebrad 4.5.0
published: '2026-08-18'
updated: '2026-09-09'
sourceUpdated: '2026-09-09T21:13:25.910'
source: NVD
sourceUrl: 'https://nvd.nist.gov/vuln/detail/CVE-2026-52736'
references:
  - url: >-
      https://github.com/ZcashFoundation/zebra/commit/1440b43ca7df59aca948090d45117557b217a6cd
    label: security-advisories@github.com
  - url: 'https://github.com/ZcashFoundation/zebra/releases/tag/v4.5.0'
    label: security-advisories@github.com
  - url: >-
      https://github.com/ZcashFoundation/zebra/security/advisories/GHSA-4m69-67m6-prqp
    label: security-advisories@github.com
  - url: >-
      https://github.com/ZcashFoundation/zebra/blob/d4cd662c716382f6397d2a730148025a1ca79fec/zebra-state/src/service.rs#L659-L714
  - url: >-
      https://github.com/ZcashFoundation/zebra/blob/d4cd662c716382f6397d2a730148025a1ca79fec/zebra-state/src/service.rs#L797-L802
  - url: 'https://github.com/advisories/GHSA-4m69-67m6-prqp'
tags:
  - nvd
  - ghsa
  - rust
epss: 0.00444
epssPercentile: 0.38031
ecosystem: rust
ingestedAt: '2026-07-02T20:42:45.870Z'
---

## Overview

ZEBRA is a Zcash node written entirely in Rust. Prior to 4.5.0, a remote unauthenticated P2P peer can stall a Zebra node by racing an invalid block body against the valid canonical body for the same block header hash. ZIP-244 permits the attacker to mutate coinbase scriptSig authentication data while retaining the transaction identifiers, merkle root, and block header hash, so the poisoned body fails later commitment validation but shares the canonical hash. In zebra-state/src/service.rs, queue_and_commit_to_non_finalized_state recorded the hash in non_finalized_block_write_sent_hashes before contextual validation completed and did not remove it when the write task rejected the body. When the honest body later arrived, the cached hash caused KnownBlock::WriteChannel duplicate handling to suppress it, leaving the node stuck one height behind until restart or reorganization. This issue is fixed in version 4.5.0.

## Remediation

Refer to the linked advisories for vendor-supplied fixes and affected version ranges.

## Package advisory (CVE-2026-52736)

Affected packages:

- `zebra-state <= 6.0.0`
- `zebrad <= 4.4.1`

Patched in:

- `zebra-state 7.0.0`
- `zebrad 4.5.0`

Source: https://github.com/advisories/GHSA-4m69-67m6-prqp
