CVE-2026-88255 in mpp
Sumário
de VulDB • 16/09/2026
Validação inadequada de equivalência insegura na entrada no ZenHive MPP permite que um cliente remoto não autenticado contorne duas vezes o mecanismo de detecção de submissão duplicada do Tempo com uma única transação assinada.
O método `MPP.Methods.Tempo` reserva a slot de deduplicação antes da transmissão (pre-broadcast) no hex fornecido pelo chamador em `reserve_hash_atomic/2`, utilizando como chave o resultado de `store_key/1` aplicado ao campo `tx.raw` e não uma forma canônica da transação. O desserializador armazena o hex do chamador literalmente e aceita ambas as codificações do recovery-id; portanto, uma única transação assinada submetida uma vez com v=27 e outra vez com v=0 gera duas chaves de reserva distintas, permitindo que ambas passem pela etapa de reserva e alcancem a rota de transmissão. O armazenamento de replay de credenciais em nível de plug é deliberadamente isolado para o Tempo no arquivo `lib/mpp/replay.ex`, deixando esta etapa de reserva como a única barreira; além disso, a marcação pós-transmissão grava a chave do hash canônico que a reserva baseada na chave bruta (raw-keyed) nunca lê.
O resultado da submissão duplicada depende do nó: uma rejeição por reutilização de nonce falha com segurança (fail-closed), enquanto um nó que responde com o hash canônico para uma transação já conhecida retorna um segundo Recibo de Pagamento válido para um único pagamento na cadeia principal (on-chain).
Este problema afeta a biblioteca mpp: das versões 0.2.0 até antes da 0.16.2.
If you want to get best quality of vulnerability data, you may have to visit VulDB.