CVE-2026-54541
Published:July 16, 2026
Updated:August 02, 2026
Impact A malicious peer acting as a state-sync source can crash a syncing node by sending a crafted "TrieChunk" whose proof contains two "TrieProofNode"s with identical keys. "TrieProof::verify()" calls "TrieProofNode::child_index()" ("primitives/src/trie/trie_proof_node.rs:94"), which unconditionally unwraps "KeyNibbles::get(self.key.len())". Because "is_prefix_of" returns "true" for two equal keys, execution reaches "get(len)", which returns "None", and the "unwrap()" panics. The panic is reached from untrusted network input ("ResponseChunk" → "commit_chunks" → "put_chunk" → "proof.verify()") before any cryptographic proof verification, so the attacker does not need to produce a valid proof. Exploitation requires the attacker to be selected as the victim's sync peer while the victim is performing state sync, and the resulting crash is transient (the node restarts and re-syncs). Affected: core-rs-albatross <= 1.5.1 ("nimiq-primitives"). Patches Fixed in 1.6.0 via https://github.com/nimiq/core-rs-albatross/pull/3789 (commit "41d35ace"). "child_index" now rejects equal-length keys and returns "MerkleRadixTrieError::WrongPrefix" instead of unwrapping. Workarounds None other than syncing only from trusted peers. Upgrade to 1.6.0.
Affected Packages
https://github.com/nimiq/core-rs-albatross.git (GITHUB):
Affected version(s) >=v1.0.0 <v1.6.0Fix Suggestion:
Update to version v1.6.0Related Resources (5)
Do you need more information?
Contact UsCVSS v4
Base Score:
6.3
Attack Vector
NETWORK
Attack Complexity
HIGH
Attack Requirements
NONE
Privileges Required
NONE
User Interaction
NONE
Vulnerable System Confidentiality
NONE
Vulnerable System Integrity
NONE
Vulnerable System Availability
LOW
Subsequent System Confidentiality
NONE
Subsequent System Integrity
NONE
Subsequent System Availability
NONE
CVSS v3
Base Score:
3.7
Attack Vector
NETWORK
Attack Complexity
HIGH
Privileges Required
NONE
User Interaction
NONE
Scope
UNCHANGED
Confidentiality
NONE
Integrity
NONE
Availability
LOW
Weakness Type (CWE)
Uncaught Exception