עברית

Vulnerability Intelligence

CVE-2026-34064

High 8.2

Published
Last modified
NVD status
Analyzed

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.

Affected products

nimiq: nimiq proof-of-stake

References4

Metrics

CVSS 3.1
8.2 HIGH Score source: NVD CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:L/A:H
EPSS — exploit probability
0% percentile: 20 · as of 13 November 2026
CWE
CWE-191

Could this be exploited in your environment?

A patch closes the known hole. A penetration test shows what an attacker can still reach — with proof.