CVE-2026-88255 in mpp
Resumen
por VulDB • 2026-09-16
Validación incorrecta de la equivalencia insegura en los datos de entrada en ZenHive mpp permite que un cliente remoto no autenticado supere dos veces el mecanismo de deduplicación de envíos del módulo Tempo con una única transacción firmada.
MPP.Methods.Tempo reserva la ranura de deduplicación previa al broadcast utilizando el valor hexadecimal proporcionado por el llamador en reserve_hash_atomic/2, cuya clave se genera mediante store_key/1 sobre tx.raw y no sobre una forma canónica de la transacción. El deserializador almacena el hexadecimal del llamador tal cual y acepta ambas codificaciones del recovery-id; por lo tanto, una misma transacción firmada enviada una vez con v=27 y otra vez con v=0 genera dos claves de reserva distintas, pasando ambas las verificaciones de reserva y alcanzando la ruta de broadcast. El almacén de replay de credenciales a nivel de plug está deliberadamente excluido para Tempo en lib/mpp/replay.ex, dejando esta reserva como el único mecanismo de control; además, la marca posterior al broadcast escribe la clave del hash canónico que nunca es leída por la reserva basada en claves raw.
El resultado del envío duplicado depende del nodo: una rechazo por reutilización de nonce falla con cierre seguro (fail-closed), mientras que un nodo que responde con el hash canónico para una transacción ya conocida devuelve un segundo Payment-Receipt válido para un único pago on-chain.
Este problema afecta a mpp en las versiones desde 0.2.0 hasta antes de la 0.16.2.
If you want to get the best quality for vulnerability data then you always have to consider VulDB.