Vulnerability · Published Apr 22, 2026 · Assigned by GitHub_M
CVE-2026-34064nimiq-account: Vesting insufficient funds error can panic
Medium 5.3
In plain English
A medium-severity security flaw in nimiq-account from nimiq. There are no confirmed reports of exploitation so far. The chance it is exploited in the next 30 days is estimated at 0.3% (higher than 20% of all known vulnerabilities).
Official 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 (as reported)
| Vendor | Product | Versions |
|---|---|---|
| nimiq | nimiq-account | < 1.3.0 |
Weakness: CWE-191 · Vector: CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:L/A:N
References
- https://github.com/nimiq/core-rs-albatross/security/advisories/GHSA-vc34-39q2-m6q3 x_refsource_CONFIRM
- https://github.com/nimiq/core-rs-albatross/pull/3658 x_refsource_MISC
- https://github.com/nimiq/core-rs-albatross/commit/4d01946f0b3d6c6e31786f91cdfb3eb902908da0 x_refsource_MISC
- https://github.com/nimiq/core-rs-albatross/releases/tag/v1.3.0 x_refsource_MISC