nimiq-block has skip block quorum bypass via out-of-range BitSet indices & u16 truncation
Affects nimiq-block up to v1.2.2 when a SkipBlockProof is verified with out-of-range slot indices spaced by 65536. The patch is included in v1.3.0.
- Published
- Last modified
- Where the record stands: published, rejected by its publisher, or superseded by another id.What do these mean? →
- published
- Whether CISA lists it in its Known Exploited Vulnerabilities catalog: proof that attackers are using it.What do these mean? →
- Not listed in CISA KEV
- How many real-world setups can hit the bug, from the vendor's advisory and CISA data. It does not know your setup.What do these mean? →
- Specific setups only
- Fix
- Fixed in 1.3.0, 1.7.2
- Whether working attack code is public (Exploit-DB, Metasploit, Nuclei or GitHub). Public code makes attacks easier.What do these mean? →
- None on Exploit-DB, Metasploit or GitHub
- Exploitation: none
- Automatable: no
- Technical impact: partial
Summary
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.
Timeline
- CVE published
- CISA SSVC assessment
Exploitation: none · Automatable: no · Technical impact: partial
- Record last updated
Affected versions
- nimiq nimiq-block
fixed in 1.3.0
- nimiq-blockcrates.io
fixed in 1.7.2
References 3
GitHub · nimiq/core-rs-albatross
Questions about CVE-2026-33471
What does this mean?
A skip block proof can pass the quorum check when its signer indices are out of range and spaced by 65536. A malicious validator with far fewer than 2f+1 real signer slots can multiply a single BLS signature by the same factor to pass verification and bypass the quorum requirement.Source: github.com
Am I affected, and how do I check?
The advisory covers nimiq-block up to v1.2.2, in cases where a SkipBlockProof's MultiSignature.signers contains out-of-range slot indices spaced by 65536. To check the version in use, look at the nimiq-block entry in the project's dependency lock file.Source: github.com
What should I do about it?
Upgrade nimiq-block to v1.3.0, which contains the formal patch for this vulnerability.Source: github.com
Is it being exploited?
It is not in CISA's Known Exploited Vulnerabilities catalog, and CISA's SSVC assessment does not mark exploitation as active. That does not mean it has not been attacked: vendors and researchers can report attacks before CISA lists them. No public exploit code is tracked.Source: cve.now feed data