Loading...
Skip to main content

CVE-2026-52731

MEDIUM

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

Published July 2, 2026Updated July 2, 2026Source: osv

Summary

### Am I affected You are affected if: 1. You run `zebrad` up to and including `v4.4.1`. 2. Your `zebrad.toml` sets `rpc.listen_addr` to a TCP address (RPC server is enabled). 3. An attacker can authenticate to the RPC endpoint. With the default `enable_cookie_auth = true`, this requires the attacker to read the `.cookie` file. With `enable_cookie_auth = false`, any network client reaching the RPC port can trigger it. ### Summary The `getblocktemplate` RPC handler panics when parsing a `LongPollId` parameter that contains non-ASCII (multi-byte UTF-8) characters. The handler performs byte-index string slicing on the user-supplied string, which panics in Rust when a byte index falls within a multi-byte character boundary. Because Zebra's release profile sets `panic = "abort"`, the panic terminates the entire node process. ### Details The `getblocktemplate` handler receives a user-supplied `LongPollId` string and slices it at fixed byte offsets to extract the encoded tip hash and tip height. When the string contains multi-byte UTF-8 characters, a byte-index slice can land in the middle of a character, causing Rust's `str` indexing to panic with "byte index is not a char boundary." Under the `panic = "abort"` release profile, this panic terminates the entire `zebrad` process rather than just the RPC task. ### Patches zebra-rpc 8.0.0 and zebrad 4.5.0. Replace byte-index string slicing with character-aware parsing or validate that the `LongPollId` string contains only ASCII characters before slicing. ### Workarounds - Disable the RPC server by removing `rpc.listen_addr` from `zebrad.toml`. - Ensure `enable_cookie_auth = true` (the default) and restrict filesystem access to the `.cookie` file. - Place a reverse proxy in front of the RPC port that validates `LongPollId` parameters are ASCII-only before forwarding. ### Impact A single authenticated RPC request terminates the `zebrad` process. Same impact profile as GHSA-c8w6-x74f-vmg3: repeatable on restart, affects mining pools and infrastructure that forward `getblocktemplate` calls. ### Credit Reported by `@sangsoo-osec` via a private GitHub Security Advisory submission.

Remediation

Upgrade to the fixed version using your package manager.

Cargo
Update zebrad to 4.5.0 or later
cargo update -p zebrad --precise 4.5.0
Cargo
Update zebra-rpc to 8.0.0 or later
cargo update -p zebra-rpc --precise 8.0.0

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

Affected Packages (2)

PackageEcosystemAffectedFixed In
zebrad
crates.io
All versions4.5.0
zebra-rpc
crates.io
All versions8.0.0

Vulnerability Classification

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

CVSS Score Breakdown

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

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

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

Frequently Asked Questions

What is CVE-2026-52731?
zebrad has full node denial of service via non-ASCII LongPollId in getblocktemplate This vulnerability has been assigned a severity rating of MEDIUM (CVSS score: 6.5/10).
How do I check if my project is affected by CVE-2026-52731?
CVE-2026-52731 affects zebrad and zebra-rpc. Use GeekWala's free vulnerability scanner to check your dependencies against CVE-2026-52731 and 200,000+ other known vulnerabilities.

Severity & Exploitability

CVSS Score
6.5

Exploitation requires specific conditions or has limited impact. Remediate within weeks.

Also Known As

GHSA-qv2r-v3mx-f4pf

Related CVEs

  • CVE-2026-41584
    CRITICAL

    Zebra has rk Identity Point Panic in Transaction Verification

  • CVE-2026-41583
    CRITICAL

    Zebra Vulnerable to Consensus Divergence in Transparent Sighash Hash-Type Handling

  • CVE-2026-34377
    HIGH

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

  • CVE-2026-52736
    HIGH

    Zebra has block suppression via NU5 same-header body poisoning of sent-hash cache

  • CVE-2026-52829
    HIGH

    Zebra Address Book Aborted by IPv4-Mapped Mempool Misbehavior Update

  • 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

Check if you're affected

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

Scan Your Dependencies