CVE-2026-34064CWE-191

nimiq-account: Vesting insufficient funds error can panic

Medium · published April 22, 2026

CVSS v3.1
5.3
EPSS
0%
Percentile
41.1
In the wild
Unconfirmed
What it is

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.

The record
Technical detail
CVSS v3.1
5.3 · MEDIUM
Vector
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:L/A:N
CVSS v4.0
Not supplied
EPSS
0.00487 · 41.1th percentile
Weakness
CWE-191 · Integer Underflow (Wrap or Wraparound)
Published
2026-04-22T19:43Z
EPSS history
Timeline
  • 22 APR 19:43Z
    nimiq-account: Vesting insufficient funds error can panic
    cvelistv5