CVE-2026-34065
Received Received - Intake
Panic Vulnerability in nimiq-primitives via Invalid BLS Voting Key

Publication date: 2026-04-22

Last updated on: 2026-04-24

Assigner: GitHub, Inc.

Description
nimiq-primitives contains primitives (e.g., block, account, transaction) to be used in Nimiq's Rust implementation. Prior to version 1.3.0, an untrusted p2p peer can cause a node to panic by announcing an election macro block whose `validators` set contains an invalid compressed BLS voting key. Hashing an election macro header hashes `validators` and reaches `Validators::voting_keys()`, which calls `validator.voting_key.uncompress().unwrap()` and panics on invalid bytes. The patch for this vulnerability is included as part of v1.3.0. No known workarounds are available.
CVSS Scores
EPSS Scores
Probability:
Percentile:
Meta Information
Published
2026-04-22
Last Modified
2026-04-24
Generated
2026-06-16
AI Q&A
2026-04-23
EPSS Evaluated
2026-06-15
NVD
EUVD
Affected Vendors & Products
Showing 1 associated CPE
Vendor Product Version / Range
nimiq nimiq_proof-of-stake to 1.3.0 (exc)
Helpful Resources
Exploitability
CWE
CWE Icon
KEV
KEV Icon
CWE ID Description
CWE-755 The product does not handle or incorrectly handles an exceptional condition.
CWE-252 The product does not check the return value from a method or function, which can prevent it from detecting unexpected states and conditions.
Attack-Flow Graph
AI Quick Actions
Instant insights powered by AI
Compliance Impact

The vulnerability causes a denial-of-service condition by crashing nodes when processing election macro blocks with invalid compressed BLS voting keys. It impacts availability but does not affect confidentiality or integrity of data.

Since the vulnerability only affects availability and does not lead to unauthorized access, data leakage, or data modification, it does not directly impact compliance with data protection regulations such as GDPR or HIPAA, which primarily focus on confidentiality and integrity of personal or sensitive data.

However, the availability impact could indirectly affect compliance if the service disruption prevents timely access to data or services required under these regulations.

Executive Summary

This vulnerability exists in the nimiq-primitives library used in Nimiq's Rust implementation. Before version 1.3.0, an untrusted peer in the peer-to-peer network can cause a node to panic by announcing an election macro block that contains an invalid compressed BLS voting key in its validators set. When the node tries to hash the election macro header, it processes the validators and attempts to uncompress the voting key. If the voting key bytes are invalid, this causes the node to panic, leading to a denial of service.

Impact Analysis

The primary impact of this vulnerability is a denial of service (DoS) condition. An attacker controlling an untrusted peer can cause a node to panic and potentially crash by sending election macro blocks with invalid voting keys. This disrupts the normal operation of the node, affecting availability.

Mitigation Strategies

To mitigate this vulnerability, you should upgrade the nimiq-primitives package to version 1.3.0 or later, where the patch for this issue is included.

No known workarounds are available, so applying the update is the immediate and recommended step.

Detection Guidance

This vulnerability occurs when an untrusted peer announces an election macro block containing invalid compressed BLS voting keys, causing the node to panic during block hashing. Detection involves monitoring for node crashes or panics triggered by malformed election macro blocks.

Since the vulnerability is triggered by invalid compressed BLS voting keys in election macro blocks, one way to detect it is to observe logs or error messages related to panics or crashes in the node software when processing such blocks.

The patch introduces explicit validation methods such as `validate_keys()` and early block header verification (`verify_header()`) to reject malformed blocks before hashing. If you are running a patched version (v1.3.0 or later), these checks will prevent crashes.

For unpatched systems, there are no known direct detection commands provided in the resources. However, you can monitor the node logs for panic messages related to `uncompress().unwrap()` failures or crashes during election macro block processing.

No specific command-line tools or commands are provided in the resources to detect this vulnerability on your network or system.

Chat Assistant
Ask questions about this CVE
Hi! I’m here to help you understand CVE-2026-34065. Ask me anything about the vulnerability, its impact, or mitigation strategies.
0/70
EPSS Chart