NewApp Monitoring is liveSign up free
AgentbeamBeta
Open-source package vulnerability · Rust (crates.io)

CVE-2026-33471: nimiq-block has skip block quorum bypass via out-of-range BitSet indices & u16 truncation

criticalCVSS 3.1 9.6GHSA-6973-8887-87ff

Impact 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. 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.

Published Apr 22, 2026 · Updated Apr 27, 2026

Affected packages

nimiq-block

Ecosystem
Rust (crates.io)
Affected
<= 0.2.0
Fixed in
No patched version yet
Check
cargo tree -i nimiq-block

Advisory details

From the GitHub Advisory Database (CC BY 4.0).

Impact

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. 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.

Patches

The patch for this vulnerability is included as part of v1.3.0.

Workarounds

No known workarounds.

Credited to 1seal.

References

How this page is made: the data panel comes from the GitHub Advisory Database, CISA’s KEV catalog, the NVD and FIRST EPSS, and updates twice a day. No analysis has been written for this entry yet. Methodology