Description
nimiq-block contains block primitives to be used in Nimiq's Rust implementation. `SkipBlockProof::verify` computes its quorum check using `BitSet.len()`, then iterates `BitSet` indices and casts each `usize` index to `u16` (`slot as u16`) for slot lookup. Prior to version 1.3.0, if an attacker can get a `SkipBlockProof` verified where `MultiSignature.signers` contains out-of-range indices spaced by 65536, these indices inflate `len()` but collide onto the same in-range `u16` slot during aggregation. This makes it possible for a malicious validator with far fewer than `2f+1` real signer slots to pass skip block proof verification by multiplying a single BLS signature by the same factor. The patch for this vulnerability is included as part of v1.3.0. No known workarounds are available.
Published: 2026-04-22
Score: 9.6 Critical
EPSS: < 1% Very Low
KEV: No
Impact: Authority bypass via skip block quorum evasion
Action: Immediate Patch
AI Analysis

Impact

A flaw in the Nimiq Rust implementation’s skip block verification permits a malicious validator to craft a SkipBlockProof with out‑of‑range signer indices spaced by 65536. The routine first uses the full BitSet length to calculate the required quorum, then casts each index to a 16‑bit value for slot lookup. Because the high‑order bits are discarded, the inflated quorum count collapses onto the same in‑range u16 slot during signature aggregation. As a result, a validator with fewer than the 2f+1 unique signatures required for consensus can satisfy the quorum by repeating a single BLS signature, effectively bypassing the intended block validation.

Affected Systems

The vulnerability impacts the nimiq-block component of the Nimiq core‑rs Albatross implementation. All releases prior to version 1.3.0 are affected.

Risk and Exploitability

The CVSS score of 9.6 indicates critical severity, and even though an EPSS score is unavailable, the high impact and lack of mitigation expose systems to immediate exploitation. The vulnerability is not listed in CISA KEV, but the impact on a decentralized ledger makes it a high‑risk threat if unpatched. The attack vector is administrative: an attacker must control a validator node capable of broadcasting a crafted SkipBlockProof. Knowledge of the index spacing mechanism is required, but the vulnerability can be replicated with the supplied commit or release information.

Generated by OpenCVE AI on April 27, 2026 at 08:30 UTC.

Remediation

No vendor fix or workaround currently provided.

OpenCVE Recommended Actions

  • Apply the v1.3.0 patch for nimiq-block to fix the out‑of‑range BitSet index issue.
  • Deploy monitoring of skip block verification to detect anomalous quorum counts and block submissions.
  • If a node upgrade cannot be performed immediately, disable participation in block production or temporarily remove the node from the validator set until the vulnerability is patched.

Generated by OpenCVE AI on April 27, 2026 at 08:30 UTC.

Tracking

Sign in to view the affected projects.

Advisories
Source ID Title
Github GHSA Github GHSA GHSA-6973-8887-87ff nimiq-block has skip block quorum bypass via out-of-range BitSet indices & u16 truncation
History

Mon, 27 Apr 2026 20:15:00 +0000

Type Values Removed Values Added
First Time appeared Nimiq nimiq-block
Vendors & Products Nimiq nimiq-block

Fri, 24 Apr 2026 17:15:00 +0000

Type Values Removed Values Added
First Time appeared Nimiq
Nimiq nimiq Proof-of-stake
CPEs cpe:2.3:a:nimiq:nimiq_proof-of-stake:*:*:*:*:*:rust:*:*
Vendors & Products Nimiq
Nimiq nimiq Proof-of-stake

Thu, 23 Apr 2026 15:30:00 +0000

Type Values Removed Values Added
Metrics ssvc

{'options': {'Automatable': 'no', 'Exploitation': 'none', 'Technical Impact': 'partial'}, 'version': '2.0.3'}


Wed, 22 Apr 2026 20:00:00 +0000

Type Values Removed Values Added
Description nimiq/core-rs-albatross is a Rust implementation of the Nimiq Proof-of-Stake protocol based on the Albatross consensus algorithm. `SkipBlockProof::verify` computes its quorum check using `BitSet.len()`, then iterates `BitSet` indices and casts each `usize` index to `u16` (`slot as u16`) for slot lookup. Prior to version 1.3.0, if an attacker can get a `SkipBlockProof` verified where `MultiSignature.signers` contains out-of-range indices spaced by 65536, these indices inflate `len()` but collide onto the same in-range `u16` slot during aggregation. This makes it possible for a malicious validator with far fewer than `2f+1` real signer slots to pass skip block proof verification by multiplying a single BLS signature by the same factor. The patch for this vulnerability is included as part of v1.3.0. No known workarounds are available. nimiq-block contains block primitives to be used in Nimiq's Rust implementation. `SkipBlockProof::verify` computes its quorum check using `BitSet.len()`, then iterates `BitSet` indices and casts each `usize` index to `u16` (`slot as u16`) for slot lookup. Prior to version 1.3.0, if an attacker can get a `SkipBlockProof` verified where `MultiSignature.signers` contains out-of-range indices spaced by 65536, these indices inflate `len()` but collide onto the same in-range `u16` slot during aggregation. This makes it possible for a malicious validator with far fewer than `2f+1` real signer slots to pass skip block proof verification by multiplying a single BLS signature by the same factor. The patch for this vulnerability is included as part of v1.3.0. No known workarounds are available.

Wed, 22 Apr 2026 19:30:00 +0000

Type Values Removed Values Added
Description nimiq/core-rs-albatross is a Rust implementation of the Nimiq Proof-of-Stake protocol based on the Albatross consensus algorithm. `SkipBlockProof::verify` computes its quorum check using `BitSet.len()`, then iterates `BitSet` indices and casts each `usize` index to `u16` (`slot as u16`) for slot lookup. Prior to version 1.3.0, if an attacker can get a `SkipBlockProof` verified where `MultiSignature.signers` contains out-of-range indices spaced by 65536, these indices inflate `len()` but collide onto the same in-range `u16` slot during aggregation. This makes it possible for a malicious validator with far fewer than `2f+1` real signer slots to pass skip block proof verification by multiplying a single BLS signature by the same factor. The patch for this vulnerability is included as part of v1.3.0. No known workarounds are available.
Title nimiq-block has skip block quorum bypass via out-of-range BitSet indices & u16 truncation
Weaknesses CWE-1284
CWE-190
CWE-20
CWE-345
References
Metrics cvssV3_1

{'score': 9.6, 'vector': 'CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:C/C:N/I:H/A:H'}


Subscriptions

Nimiq Nimiq-block Nimiq Proof-of-stake
cve-icon MITRE

Status: PUBLISHED

Assigner: GitHub_M

Published:

Updated: 2026-04-23T14:15:20.570Z

Reserved: 2026-03-20T16:16:48.969Z

Link: CVE-2026-33471

cve-icon Vulnrichment

Updated: 2026-04-23T14:15:16.296Z

cve-icon NVD

Status : Analyzed

Published: 2026-04-22T20:16:40.317

Modified: 2026-04-24T17:11:40.037

Link: CVE-2026-33471

cve-icon Redhat

No data.

cve-icon OpenCVE Enrichment

Updated: 2026-04-27T19:53:13Z