CVE-2026-54541 json
Nimiq: Panic in TrieProof::verify via child_index unwrap on equal-length keys
published 2026-07-16 3 mo ago modified 2026-09-30 39 d ago also GHSA-46wq-28cx-mhw4 , EUVD-2026-77576
- cvss
- 3.7
- version 3.1, CNA
- cisa kev
- Not listed
- not in CISA's catalog
- epss
- 0.4%
- EPSS 0.4% chance of exploitation in 30 days, percentile 38%
- public exploits
- 0
- none known
Summary
Nimiq is a Rust implementation of the Nimiq Proof-of-Stake protocol based on the Albatross consensus algorithm. Prior to 1.6.0, a malicious state-sync peer can crash a syncing node by sending a crafted TrieChunk proof containing two TrieProofNode values with identical keys. TrieProof::verify calls TrieProofNode::child_index in primitives/src/trie/trie_proof_node.rs, where is_prefix_of accepts equal keys and KeyNibbles::get is called at the key length, returns None, and is unconditionally unwrapped. Untrusted ResponseChunk data reaches commit_chunks, put_chunk, and proof.verify before cryptographic proof validation, so the attacker does not need a valid proof. Exploitation requires the attacker to be selected as the victim's sync peer during state sync, and the resulting panic is transient because the node restarts and resynchronizes. This issue is fixed in version 1.6.0.
Patch / fix
- crates.io nimiq-primitives 1.6.0
CISA SSVC
- Exploitation
- none
- Automatable
- no
- Technical impact
- partial
- Assessed
- 53 d ago
Exploit prediction
0.44% chance of exploitation in the next 30 days, higher than 38% of all scored CVEs (FIRST EPSS, 2026-11-08).
CVSS scores
| assigned by | version | score | vector |
|---|---|---|---|
| CNA | 3.1 | 3.7 | CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:N/A:L |
| GitHub | 3.1 | 3.7 | CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:N/A:L |
Affected packages
| ecosystem | package | affected | fixed in |
|---|---|---|---|
| crates.io | nimiq-primitives | <1.6.0 |
1.6.0 |
Affected products
- nimiq core-rs-albatross
Classification
- Weakness
-
- CWE-248 Uncaught Exception
References
-
github.com
/nimiq/core-rs-albatross/pull/3789
web
-
github.com
/nimiq/core-rs-albatross/commit/41d35acee1b5cf3bc34ec3ddc1abbc03604e791e
web
-
github.com
/nimiq/core-rs-albatross/security/advisories/GHSA-46wq-28cx-mhw4
web
-
github.com
/nimiq/core-rs-albatross/releases/tag/v1.6.0
web
-
github.com
/nimiq/core-rs-albatross
package
Sources
- CVE List CVE-2026-54541
- GitHub Advisory GHSA-46wq-28cx-mhw4
- NVD CVE-2026-54541
Fencer Vulns keeps one entry per vulnerability: the CVE id wins, then GHSA, and records that alias each other are merged, except that two CVEs always keep separate entries. The same data is available as JSON.