CVE-2026-34064

Medium

Description

nimiq-account contains account primitives to be used in Nimiq's Rust implementation. Prior to version 1.3.0, `VestingContract::can_change_balance` returns `AccountError::InsufficientFunds` when `new_balance < min_cap`, but it constructs the error using `balance: self.balance - min_cap`. `Coin::sub` panics on underflow, so if an attacker can reach a state where `min_cap > balance`, the node crashes while trying to return an error. The `min_cap > balance` precondition is attacker-reachable because the vesting contract creation data (32-byte format) allows encoding `total_amount` without validating `total_amount <= transaction.value` (the real contract balance). After creating such a vesting contract, the attacker can broadcast an outgoing transaction to trigger the panic during mempool admission and block processing. The patch for this vulnerability is included as part of v1.3.0. No known workarounds are available.

SeverityMedium
CVSS5.3
Exploit probability—
ProductNimiq Proof-of-stake
PublishedApr 22, 2026
First seenApr 22, 2026
Weakness typeCWE-191CWE-191

How to fix

Update
  • nimiq nimiq_proof-of-stake1.3.0 or later

Affected products

ProductAffected versionsFixed in
nimiq nimiq_proof-of-stakev < 1.3.01.3.0

Check your version

Choose the product and enter the version you run to see whether it falls in the affected range.

In the Intelligence 360 plan

Attack Surface Management

See the assets tied to your domains, the technologies they run and known vulnerabilities in one list.