Loading...
Skip to main content

CVE-2026-46545 — nimiq-primitives: Panic DoS in nimiq-primitives —...

HIGH

nimiq-primitives: Panic DoS in trie chunk processing via ROOT-keyed item

Published May 21, 2026Updated June 10, 2026Source: osv

Summary

### Impact A remote, unauthenticated denial-of-service vulnerability in `MerkleRadixTrie::put_chunk` allows any state-sync peer to crash any node performing state synchronization (freshly joining nodes and recovering nodes). A malicious peer can respond to a `RequestChunk` with a `ResponseChunk::Chunk` whose first `TrieItem.key` is the empty (ROOT) key. The chunk passes sorting, range, and Merkle-proof validation, but when `put_raw` tries to store a value at the root node, it calls `TrieNode::put_value(...).unwrap()`, which returns `Err(RootCantHaveValue)` and panics, aborting the node process. The panic fires on the first malicious chunk the victim commits; no rate limit or authentication gate caps the attack. Impacted: any node running state sync against untrusted peers — this includes fresh nodes performing initial download and existing nodes recovering from data loss. Honest nodes never construct ROOT-keyed items, so non-syncing operation is unaffected. ### Patches See [PR](https://github.com/nimiq/core-rs-albatross/pull/3762). ### Workarounds There is no safe in-process workaround: any peer serving state-sync data can trigger the crash and the code path is not guarded by a feature flag. ### Resources - Fix commit: (link to the merged PR commit, once merged) - Affected code: [`primitives/trie/src/trie.rs`](https://github.com/nimiq/core-rs-albatross/blob/albatross/primitives/trie/src/trie.rs) — `put_chunk` (around line 819) and `put_raw` (around line 351)

Advisory Timeline

  • First published May 21, 2026 (144 days ago).
  • Last revised June 10, 2026 — 20 days after initial publication.

Remediation

Upgrade to the fixed version using your package manager.

Cargo
Update nimiq-primitives to 1.5.0 or later
cargo update -p nimiq-primitives --precise 1.5.0

After upgrading, run your dependency scanner again to confirm the vulnerability is resolved.

Affected Packages (1)

Affects 1 ecosystem: crates.io (1).

PackageEcosystemAffectedFixed In
nimiq-primitives
crates.io
All versions1.5.0

Vulnerability Classification

Common Weakness Enumeration (CWE) identifiers for this vulnerability type.

CVSS Score Breakdown

What the CVSS (Common Vulnerability Scoring System) 7.5 score means for each attack dimension.

Attack Vector
Network
Attack Complexity
Low
Privileges Required
None
User Interaction
None
Scope
Unchanged
Confidentiality
None
Integrity
None
Availability
High

CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H

Frequently Asked Questions

What is CVE-2026-46545?
nimiq-primitives: Panic DoS in trie chunk processing via ROOT-keyed item This vulnerability has been assigned a severity rating of HIGH (CVSS score: 7.5/10).
How do I check if my project is affected by CVE-2026-46545?
CVE-2026-46545 affects nimiq-primitives. Use GeekWala's free vulnerability scanner to check your dependencies against CVE-2026-46545 and 200,000+ other known vulnerabilities.

Severity & Exploitability

CVSS Score
7.5

High exploitability or significant impact. Prioritize remediation within days.

Also Known As

GHSA-mw3q-r9wh-h2ff

Related CVEs

  • CVE-2026-93657
    HIGH

    hickory-resolver: Resolver::lookup() and Resolver::lookup_ip() APIs obscure DNSSEC validation failures

  • CVE-2026-34065
    HIGH

    nimiq-primitives: Node crash due to missing interlink validation in election macro block proposals

  • CVE-2026-18140
    HIGH

    aws-smithy-json: Uncontrolled recursion in the aws-smithy-json unknown-key skip path allows unauthenticated remote denial of service in smithy-rs generated servers

  • CVE-2026-46539
    MEDIUM

    nimiq-primitives: BlockInclusionProof interlink issue when hops are empty

Check if you're affected

Scan your dependencies to see if this vulnerability affects your projects.

Scan Your Dependencies