CVE Catalog

CVE-2026-34064

MediumCVSS 5.3
Published: Updated: Translated: NVD NIST

Exploitation Probability (EPSS)

Low risk
0.28%

20th percentile - higher than 20% of all known CVEs

Summary

The nimiq-account library prior to version 1.3.0 contains a flaw in VestingContract::can_change_balance that constructs an error using self.balance - min_cap when new_balance < min_cap. If min_cap > balance, Coin::sub panics due to underflow, and an attacker can reach this state by creating a vesting contract with unvalidated total_amount. This causes node crashes during mempool admission and blocks processing.

Risk Assessment

An attacker can remotely crash a Nimiq node, causing denial of service and network disruption. This only requires the ability to create vesting contracts and broadcast transactions.

Recommendation

Update nimiq-account to version 1.3.0 or later, which includes the fix. No known workarounds exist — updating is the only solution.

Related vulnerabilities

Original NVD description (English source)

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.

Vulnerability data from NVD (NIST) · CISA KEV · EPSS