GHSA-6973-8887-87ff

Suggest an improvement
Source
https://github.com/advisories/GHSA-6973-8887-87ff
Import Source
https://github.com/github/advisory-database/blob/main/advisories/github-reviewed/2026/04/GHSA-6973-8887-87ff/GHSA-6973-8887-87ff.json
JSON Data
https://api.osv.dev/v1/vulns/GHSA-6973-8887-87ff
Aliases
  • CVE-2026-33471
Published
2026-04-22T19:13:47Z
Modified
2026-05-05T16:02:38.268045Z
Severity
  • 9.6 (Critical) CVSS_V3 - CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:C/C:N/I:H/A:H CVSS Calculator
Summary
nimiq-block has skip block quorum bypass via out-of-range BitSet indices & u16 truncation
Details

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.

Database specific
{
    "github_reviewed_at": "2026-04-22T19:13:47Z",
    "severity": "CRITICAL",
    "cwe_ids": [
        "CWE-1284",
        "CWE-190",
        "CWE-20",
        "CWE-345"
    ],
    "github_reviewed": true,
    "nvd_published_at": "2026-04-22T20:16:40Z"
}
References

Affected packages

crates.io / nimiq-block

Package

Affected ranges

Type
SEMVER
Events
Introduced
0Unknown introduced version / All previous versions are affected
Last affected
0.2.0

Database specific

source
"https://github.com/github/advisory-database/blob/main/advisories/github-reviewed/2026/04/GHSA-6973-8887-87ff/GHSA-6973-8887-87ff.json"