{"schema":"threatline.record/2","record":{"id":"CVE-2026-46369","aliases":["GHSA-3763-qp59-59vf"],"summary":"nimiq-blockchain: Validity store off by one error","details":"### Impact\nThe 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.\n\n### Patches\nhttps://github.com/nimiq/core-rs-albatross/pull/3772\n\n### Workarounds\nNo known workarounds","categories":["Libraries & packages"],"product":"nimiq-blockchain","vendor":"nimiq","ecosystem":"rust","affected_ranges":[{"source":"GitHub Advisory Database","source_url":"https://github.com/advisories/GHSA-3763-qp59-59vf","source_modified_at":"2026-10-04T22:11:57Z","fetched_at":"2026-10-23T18:42:43.628194Z","package":{"ecosystem":"rust","name":"nimiq-blockchain"},"range":"<= 1.5.0"},{"source":"CVE List","source_url":"https://www.cve.org/CVERecord?id=CVE-2026-46369","source_modified_at":"2026-08-27T15:22:58.317Z","fetched_at":"2026-10-23T18:45:31.882637Z","product":"core-rs-albatross","vendor":"nimiq","versions":[{"version":"< 1.5.1","status":"affected"}],"defaultStatus":null},{"source":"OSV","source_url":"https://osv.dev/vulnerability/GHSA-3763-qp59-59vf","source_modified_at":"2026-08-12T15:41:04.474170Z","fetched_at":"2026-10-23T18:45:31.882637Z","package":{"name":"nimiq-blockchain","ecosystem":"crates.io","purl":"pkg:cargo/nimiq-blockchain"},"ranges":[{"type":"SEMVER","events":[{"introduced":"0"},{"fixed":"1.5.1"}]}],"versions":[]}],"fixed_versions":[{"source":"GitHub Advisory Database","source_url":"https://github.com/advisories/GHSA-3763-qp59-59vf","source_modified_at":"2026-10-04T22:11:57Z","fetched_at":"2026-10-23T18:42:43.628194Z","package":{"ecosystem":"rust","name":"nimiq-blockchain"},"version":"1.5.1"},{"source":"OSV","source_url":"https://osv.dev/vulnerability/GHSA-3763-qp59-59vf","source_modified_at":"2026-08-12T15:41:04.474170Z","fetched_at":"2026-10-23T18:45:31.882637Z","package":{"name":"nimiq-blockchain","ecosystem":"crates.io","purl":"pkg:cargo/nimiq-blockchain"},"version":"1.5.1"}],"cvss":7.5,"severity":"High","kev":{"listed":false},"epss":{"probability":0.00549,"percentile":0.45205,"score_date":"2026-10-23"},"published_at":"2026-08-26T19:32:46.025Z","modified_at":"2026-10-04T22:11:57Z","provenance":[{"source":"GitHub Advisory Database","url":"https://github.com/advisories/GHSA-3763-qp59-59vf","fetched_at":"2026-10-23T18:42:43.628194Z","source_modified_at":"2026-10-04T22:11:57Z"},{"source":"CVE List","url":"https://www.cve.org/CVERecord?id=CVE-2026-46369","fetched_at":"2026-10-23T18:45:31.882637Z","source_modified_at":"2026-08-27T15:22:58.317Z"},{"source":"OSV","url":"https://osv.dev/vulnerability/GHSA-3763-qp59-59vf","fetched_at":"2026-10-23T18:45:31.882637Z","source_modified_at":"2026-08-12T15:41:04.474170Z"},{"source":"EPSS","url":"https://api.first.org/data/v1/epss?cve=CVE-2026-46369","fetched_at":"2026-10-23T18:42:43.628194Z","source_modified_at":"2026-10-23"}],"sources":["GitHub Advisory Database","CVE List","OSV","EPSS"],"references":[{"source":"CVE List","url":"https://github.com/nimiq/core-rs-albatross/security/advisories/GHSA-3763-qp59-59vf","tags":["x_refsource_CONFIRM"]},{"source":"CVE List","url":"https://github.com/nimiq/core-rs-albatross/pull/3772","tags":["x_refsource_MISC"]},{"source":"CVE List","url":"https://github.com/nimiq/core-rs-albatross/commit/a530b2434ebca6e3716f07c73079786fcc6f2e41","tags":["x_refsource_MISC"]},{"url":"https://github.com/advisories/GHSA-3763-qp59-59vf","source":"GitHub Advisory Database"}],"locations":[],"motoko_assessment":{"status":"requires_architecture_review","automatic_remediation":false},"cve_state":"PUBLISHED","ssvc":{"exploitation":"none","automatable":"yes","technical_impact":"partial","assessed_at":"2026-08-27T15:22:06.489660Z"},"classification":{"method":"product-first software-layer rules","rules_version":"2.1","matched_on":"ecosystem","confidence":"heuristic","reviewed":false},"change_timestamp":"2026-10-04T22:11:57Z","content_hash":"b8ae51367d65d255c36f822c7cec85bc3137ffb8cfd6b32f3979736155d04cd7"}}
