CVE-2026-89420

High

Description

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.

SeverityHigh
CVSS7.1
Exploit probability35. percentile0.4%
ProductZenhive Mpp
PublishedSep 22, 2026
First seenSep 22, 2026
Weakness typeCWE-1284CWE-1284

How to fix

Update
  • ZenHive mpp0.16.2, 7270edc1dcfb58250cc5ee812876609206564165 or later

Affected products

ProductAffected versionsFixed in
ZenHive mpp0.14.0 ≤ v < 0.16.2, 82df569c898be1137189e3648e1edb4af6363651 ≤ v < 7270edc1dcfb58250cc5ee8128766092065641650.16.2, 7270edc1dcfb58250cc5ee812876609206564165

Check your version

Choose the product and enter the version you run to see whether it falls in the affected range.

In the Intelligence 360 plan

Attack Surface Management

See the assets tied to your domains, the technologies they run and known vulnerabilities in one list.