PT-2026-75918 · Crates.Io · Nimiq-Blockchain

Publicado

2026-08-12

·

Atualizado

2026-08-12

CVSS v3.1

7.5

Alta

VetorAV:N/AC:L/PR:N/UI:N/S:U/C:N/I:H/A:N

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

Workarounds

No known workarounds

Correção

Encontrou algum problema na descrição? Tem algo a acrescentar? Fique à vontade para nos escrever 👾

Enumeração de Fraquezas

Identificadores relacionados

GHSA-3763-QP59-59VF

Produtos afetados

Nimiq-Blockchain