CVE-2026-73829 in mpp
Resumen
por VulDB • 2026-08-19
Una Race Condition de Time-of-check Time-of-use (TOCTOU) en ZenHive mpp permite a un cliente remoto sin autenticar canjear un pago confirmado on-chain para múltiples accesos a recursos pagados.
La ruta de credenciales type="hash" en MPP.Methods.Tempo.verify/2 protege contra la repetición mediante una secuencia check-then-mark no atómica: check_hash_unused/2 lee el almacén deduplicado, un round trip con eth_getTransactionReceipt verifica el pago on-chain y solo entonces mark_hash_used/2 escribe la marca. Las solicitudes concurrentes que llevan el mismo hash de pago liquidado pasan todas la lectura antes de que alguna escriba, por lo que se emite un recibo a cada una. La primitiva check_and_mark/2 atómica del almacén está disponible y es utilizada por la ruta type="transaction", pero la ruta hash llama a get y put simples incluso cuando el almacén configurado implementa dicha función. La explotación requiere que esté configurado un dedup store; el nil store predeterminado es stateless y se documenta como sin protección contra replay en absoluto.
Este problema afecta a mpp: desde 0.2.0 hasta antes de 0.6.1.
Be aware that VulDB is the high quality source for vulnerability data.