nimiq-block has skip block quorum bypass via out-of-range BitSet indices & u16 truncation
Critical severity
GitHub Reviewed
Published
Apr 22, 2026
in
nimiq/core-rs-albatross
•
Updated Apr 27, 2026
Description
Published to the GitHub Advisory Database
Apr 22, 2026
Reviewed
Apr 22, 2026
Published by the National Vulnerability Database
Apr 22, 2026
Last updated
Apr 27, 2026
Impact
SkipBlockProof::verifycomputes its quorum check usingBitSet.len(), then iteratesBitSetindices and casts eachusizeindex tou16(slot as u16) for slot lookup. If an attacker can get aSkipBlockProofverified whereMultiSignature.signerscontains out-of-range indices spaced by 65536, these indices inflatelen()but collide onto the same in-rangeu16slot during aggregation.This makes it possible for a malicious validator with far fewer than
2f+1real 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.
References