What’s Vulnerable › Vulnerabilities
CVE-2026-34064: nimiq-account: Vesting insufficient funds error can panic
- Severity: high (CVSS 8.2 v3.1)
- Exploited in the wild: not listed in CISA KEV
- EPSS: 0.3% probability of exploitation in the next 30 days
- Public exploit or detection template: none known
- Published: 2026-04-22 · updated 2026-10-26
- Weakness: CWE-191
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-transaction: before 1.3.0 — fixed in 1.3.0
How to fix
Upgrade to a fixed version: nimiq-transaction 1.3.0. Check the vendor advisory for mitigations.
References
- https://github.com/nimiq/core-rs-albatross/commit/4d01946f0b3d6c6e31786f91cdfb3eb902908da0
- https://github.com/nimiq/core-rs-albatross/pull/3658
- https://github.com/nimiq/core-rs-albatross/releases/tag/v1.3.0
- https://github.com/nimiq/core-rs-albatross/security/advisories/GHSA-vc34-39q2-m6q3
Get alerted when CVE-2026-34064 or the next vulnerability affects your stack