CVE-2026-89420: fallo de gravedad alta en ZenHive mpp
Session voucher adding no new funds is accepted without a charge in mpp, serving paid resources for free
Publicada el
Aviso por correo cuando entre en el KEV, tenga PoC pública o suba de nota.
21Vexday Risk Score
Sin señal de explotación. Ningún artefacto público de explotación conocido hasta ahora.
ssvc Trackcvss 7.1epss 0.4%
Improper Validation of Specified Quantity in Input in ZenHive mpp allows a client holding an open payment channel to obtain paid resources without being charged.
MPP.Session.Actions.accept_voucher/3 in lib/mpp/session/actions.ex treats a voucher whose cumulativeAmount equals the channel's already-accepted cumulative amount as an idempotent success, returning the channel unchanged without calling maybe_spend/2. The credential verifies, the protected resource is served, and spent and units stay where they were. Because the server issues a fresh challenge per request and the credential replay store keys on challenge id and payload, the same signed voucher can be re-presented under every new challenge, so one paid voucher yields an unbounded number of paid units. The path is reachable from any method built on MPP.Session.Method through the Plug, MCP, JSON-RPC and WebSocket transports.
This issue affects mpp: from 0.14.0 before 0.16.2.
CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:N/VC:N/VI:H/VA:N/SC:N/SI:N/SA:N
Productos afectados
ZenHive · mppCVEs relacionadas — ZenHive mpp
En el mismo producto, de las más peligrosas a las menos.
CVE-2026-67581HIGHOn-chain transfer proof is not single-use in mpp EVM payment method, enabling cross-challenge replayEPSS 0.6%CVE-2026-73136HIGHStatic memo configuration in mpp Tempo disables per-challenge attribution binding, enabling third-party replayEPSS 0.6%CVE-2026-73541HIGHTempo fee sponsorship in mpp bounds each transaction but not aggregate exposure, allowing concurrent sponsor-wallet drainEPSS 0.6%CVE-2026-87119HIGHmpp Tempo subscription key authorization is not bound to the issuing challenge, allowing a captured activation credential to be replayedEPSS 0.6%CVE-2026-88255MEDIUMmpp Tempo keys its pre-broadcast dedup reserve on the caller-supplied transaction encoding, so a re-encoded signed transaction reserves a second slotEPSS 0.5%CVE-2026-89186MEDIUMmpp writes Payment-Receipt and Cache-Control before the wrapped application runs, letting a consumer's own Cache-Control expose paid responses to shared cachesEPSS 0.5%
Referencias
https://cna.erlef.org/cves/CVE-2026-89420.htmlhttps://github.com/ZenHive/mpp/commit/7270edc1dcfb58250cc5ee812876609206564165https://github.com/ZenHive/mpp/commit/82df569c898be1137189e3648e1edb4af6363651https://github.com/ZenHive/mpp/security/advisories/GHSA-8c63-r789-xrrfhttps://osv.dev/vulnerability/EEF-CVE-2026-89420