Zebra rpc: zebrad has full node denial of service via non-ASCII LongPollId in getblocktemplate (CVE-2026-52731)
ZEBRA is a Zcash node written entirely in Rust. Prior to 4.5.0, an attacker authenticated to an enabled Zebra RPC endpoint can terminate zebrad by supplying a getblocktemplate LongPollId containing multi-byte UTF-8 characters. In zebra-rpc/src/methods/types/long_poll.rs, LongPollId::from_str originally checked the input byte length and then sliced fixed byte ranges to parse encoded fields. A slice boundary can land inside a multi-byte character and trigger Rust's byte index is not a char boundary panic. Zebra release builds use panic equals abort, so one malformed authenticated RPC request terminates the entire node process and can be repeated after restart. This issue is fixed in version 4.5.0.
AI Analysis
Technical Summary
The vulnerability in zebrad's getblocktemplate RPC handler arises from unsafe byte-index slicing of the LongPollId parameter, which can contain multi-byte UTF-8 characters. When slicing occurs at a byte offset that splits a multi-byte character, Rust's string indexing panics with a 'byte index is not a char boundary' error. Because zebrad is compiled with panic set to 'abort', this panic terminates the entire node process, resulting in a denial of service. Exploitation requires authentication to the RPC endpoint, typically via cookie authentication, but can be triggered by any client if authentication is disabled. The issue affects zebrad versions up to 4.4.1 and zebra-rpc versions prior to 8.0.0. The vulnerability is addressed by replacing byte-index slicing with character-aware parsing or validating that LongPollId contains only ASCII characters before slicing.
Potential Impact
A single authenticated RPC request with a crafted LongPollId containing non-ASCII characters causes the zebrad process to abort, resulting in a full node denial of service. This impacts mining pools and infrastructure relying on zebrad's getblocktemplate RPC, as the node must be restarted to recover. The vulnerability does not affect confidentiality or integrity but causes availability disruption.
Mitigation Recommendations
A patch is available in zebra-rpc 8.0.0 and zebrad 4.5.0 that fixes the unsafe string slicing. Until patched, users should disable the RPC server by removing rpc.listen_addr from zebrad.toml or ensure enable_cookie_auth is true and restrict access to the .cookie file to prevent unauthorized RPC access. Additionally, placing a reverse proxy in front of the RPC port to validate that LongPollId parameters contain only ASCII characters can mitigate exploitation.
Zebra rpc: zebrad has full node denial of service via non-ASCII LongPollId in getblocktemplate (CVE-2026-52731)
Description
ZEBRA is a Zcash node written entirely in Rust. Prior to 4.5.0, an attacker authenticated to an enabled Zebra RPC endpoint can terminate zebrad by supplying a getblocktemplate LongPollId containing multi-byte UTF-8 characters. In zebra-rpc/src/methods/types/long_poll.rs, LongPollId::from_str originally checked the input byte length and then sliced fixed byte ranges to parse encoded fields. A slice boundary can land inside a multi-byte character and trigger Rust's byte index is not a char boundary panic. Zebra release builds use panic equals abort, so one malformed authenticated RPC request terminates the entire node process and can be repeated after restart. This issue is fixed in version 4.5.0.
CVSS v3.1
Score 6.5medium
Affected software
Run on your own infrastructure? Check whether these packages are installed with threat-finder — our free open-source scanner.
Weaknesses
AI-Powered Analysis
Machine-generated threat intelligence
Technical Analysis
The vulnerability in zebrad's getblocktemplate RPC handler arises from unsafe byte-index slicing of the LongPollId parameter, which can contain multi-byte UTF-8 characters. When slicing occurs at a byte offset that splits a multi-byte character, Rust's string indexing panics with a 'byte index is not a char boundary' error. Because zebrad is compiled with panic set to 'abort', this panic terminates the entire node process, resulting in a denial of service. Exploitation requires authentication to the RPC endpoint, typically via cookie authentication, but can be triggered by any client if authentication is disabled. The issue affects zebrad versions up to 4.4.1 and zebra-rpc versions prior to 8.0.0. The vulnerability is addressed by replacing byte-index slicing with character-aware parsing or validating that LongPollId contains only ASCII characters before slicing.
Potential Impact
A single authenticated RPC request with a crafted LongPollId containing non-ASCII characters causes the zebrad process to abort, resulting in a full node denial of service. This impacts mining pools and infrastructure relying on zebrad's getblocktemplate RPC, as the node must be restarted to recover. The vulnerability does not affect confidentiality or integrity but causes availability disruption.
Mitigation Recommendations
A patch is available in zebra-rpc 8.0.0 and zebrad 4.5.0 that fixes the unsafe string slicing. Until patched, users should disable the RPC server by removing rpc.listen_addr from zebrad.toml or ensure enable_cookie_auth is true and restrict access to the .cookie file to prevent unauthorized RPC access. Additionally, placing a reverse proxy in front of the RPC port to validate that LongPollId parameters contain only ASCII characters can mitigate exploitation.
Technical Details
- Gcve Source
- db.gcve.eu
- Osv Id
- GHSA-qv2r-v3mx-f4pf
- Osv Schema Version
- 1.4.0
- Aliases
- ["CVE-2026-52731"]
- Ecosystems
- ["crates.io"]
- Database Specific Severity
- MODERATE
- Cvss Version
- 3.1
Threat ID: 6a46ecb927e9c7971943cb2c
Added to database: 07/02/2026, 22:56:57 UTC
Last enriched: 08/19/2026, 11:12:51 UTC
Last updated: 09/14/2026, 22:01:35 UTC
Views: 101
Community Reviews
0 reviewsCrowdsource mitigation strategies, share intel context, and vote on the most helpful responses. Sign in to add your voice and help keep defenders ahead.
Want to contribute mitigation steps or threat intel context? Sign in or create an account to join the community discussion.
Actions
Updates to AI analysis require Pro Console access. Upgrade inside Console → Billing.
Need more coverage?
Upgrade to Pro Console for AI refresh and higher limits.
For incident response and remediation, OffSeq services can help resolve threats faster.
Latest Threats
Check if your credentials are on the dark web
Instant breach scanning across billions of leaked records. Free tier available.