nimiq-account: Vesting insufficient funds error can panic
Default status is the baseline for the product, each version can override it (e.g. patched versions marked unaffected).
| Vendor | Product | Default status | Versions | ||||||
|---|---|---|---|---|---|---|---|---|---|
| nimiq | nimiq-account | affected |
|
No data.
| Vendor | Product | Versions | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|
| Nimiq | Nimiq-account |
|
| Source | ID | Title |
|---|---|---|
Github GHSA |
GHSA-vc34-39q2-m6q3 | nimiq-account: Vesting insufficient funds error can panic |
No CVSS v4.0
No CVSS v3.0
No CVSS v2
This CVE is not in the KEV list.
Exploit prediction score: < 1% (0.275% probability within 30 days)
| Type | Values Removed | Values Added |
|---|---|---|
| First Time appeared |
Nimiq nimiq-account
|
|
| Vendors & Products |
Nimiq nimiq-account
|
| Type | Values Removed | Values Added |
|---|---|---|
| First Time appeared |
Nimiq
Nimiq nimiq Proof-of-stake |
|
| CPEs | cpe:2.3:a:nimiq:nimiq_proof-of-stake:*:*:*:*:*:rust:*:* | |
| Vendors & Products |
Nimiq
Nimiq nimiq Proof-of-stake |
| Type | Values Removed | Values Added |
|---|---|---|
| Metrics |
ssvc
|
| Type | Values Removed | Values Added |
|---|---|---|
| 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. | |
| Title | nimiq-account: Vesting insufficient funds error can panic | |
| Weaknesses | CWE-191 | |
| References |
| |
| Metrics |
cvssV3_1
|