GHSA-3763-qp59-59vf

Suggest an improvement
Source
https://github.com/advisories/GHSA-3763-qp59-59vf
Import Source
https://github.com/github/advisory-database/blob/main/advisories/github-reviewed/2026/08/GHSA-3763-qp59-59vf/GHSA-3763-qp59-59vf.json
JSON Data
https://api.osv.dev/v1/vulns/GHSA-3763-qp59-59vf
Aliases
Published
2026-08-12T15:16:53Z
Modified
2026-08-12T15:41:04Z
Severity
  • 7.5 (High) CVSS_V3 - CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:H/A:N CVSS Calculator
Summary
nimiq-blockchain: Validity store off by one error
Details

Impact

The validity store treats a transaction with stored block_number = X as "in window" only when X > last_bn - transaction_validity_window_blocks (strict inequality). However the protocol's Transaction::is_valid_at accepts a transaction for inclusion in any block in [validity_start_height - blocks_per_batch, validity_start_height + window - 1]. By choosing validity_start_height = X + blocks_per_batch (the largest value still compatible with first inclusion at block X), an attacker can replay the same signed transaction in any block B such that X + window < B < validity_start_height + window, i.e., a contiguous window of blocks_per_batch - 1 blocks (59 on MainNet, ~10 minutes) during which the replay-protection check fails to flag it. The same transaction is then executed twice: the sender is debited twice, the recipient credited twice.

Patches

https://github.com/nimiq/core-rs-albatross/pull/3772

Workarounds

No known workarounds

Database specific
{
    "cwe_ids": [
        "CWE-193",
        "CWE-294"
    ],
    "github_reviewed": true,
    "github_reviewed_at": "2026-08-12T15:16:53Z",
    "nvd_published_at": null,
    "severity": "HIGH"
}
References

Affected packages

crates.io / nimiq-blockchain

Package

Name
nimiq-blockchain
View open source insights on deps.dev
Purl
pkg:cargo/nimiq-blockchain

Affected ranges

Type
SEMVER
Events
Introduced
0 Unknown introduced version / All previous versions are affected
Fixed
1.5.1

Database specific

last_known_affected_version_range
"<= 1.5.0"
source
"https://github.com/github/advisory-database/blob/main/advisories/github-reviewed/2026/08/GHSA-3763-qp59-59vf/GHSA-3763-qp59-59vf.json"