PT-2026-78539 · Zenhive · Zenhive Mpp
CVSS v4.0
6.3
Média
| Vetor | AV:N/AC:L/AT:P/PR:N/UI:N/VC:N/VI:L/VA:N/SC:N/SI:N/SA:N |
Nome do Software Vulnerável e Versões Afetadas
ZenHive mpp versões 0.2.0 até 0.6.0
Description
Uma condição de corrida de Time-of-check Time-of-use (TOCTOU) existe, permitindo que um cliente remoto não autenticado resgate um único pagamento confirmado on-chain para múltiplos acessos a recursos pagos. Isso ocorre no caminho de credencial
type="hash" dentro da função MPP.Methods.Tempo.verify/2, que utiliza uma sequência de verificação-e-marcação não atômica. Especificamente, a função check hash unused/2 lê a loja de deduplicação e, após uma viagem de ida e volta do eth getTransactionReceipt verificar o pagamento on-chain, a função mark hash used/2 grava a marcação. Solicitações simultâneas usando o mesmo hash de pagamento liquidado podem passar pela leitura inicial antes que qualquer gravação ocorra, resultando na emissão de múltiplos recibos. Embora um primitivo atômico check and mark/2 esteja disponível e seja usado pelo caminho type="transaction", o caminho de hash utiliza incorretamente operações simples de get e put. Este problema requer que uma loja de deduplicação esteja configurada, pois a loja nil padrão é stateless e não oferece proteção contra replay.Recommendations
Atualize o ZenHive mpp para a versão 0.6.1.
Como mitigação temporária, restrinja o uso do caminho de credencial
type="hash" na função MPP.Methods.Tempo.verify/2 até que a atualização seja aplicada.Exploit
Correção
Time Of Check To Time Of Use
Encontrou algum problema na descrição? Tem algo a acrescentar? Fique à vontade para nos escrever 👾
Enumeração de Fraquezas
Identificadores relacionados
Produtos afetados
Zenhive Mpp