CVE-2026-89420

Session voucher adding no new funds is accepted without a charge in mpp, serving paid resources for free

HIGH
7.1
CVSS Score
Published: September 22, 2026 at 11:16 AM UTC
Updated: September 22, 2026 at 07:21 PM UTC
1 product affected across 1 vendorMachine Payments Protocol

Using mpp by ZenHive?

Get instant alerts when new vulnerabilities affect mpp - before attackers find them.

Real-time alertsTrack your software stackFree plan available
Severity
HIGH7.1
Exploit prediction
EPSS 0.4%
SSVC
PoC

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.

Affected

Our own answer: ranges merged, affected separated from platform-only, with confidence and review flags.

0.14.0 ≤ v < 0.16.20.14.082df569c898be1137189e3648e1edb4af6363651
Vendor states this is fixed in 7270edc1dcfb58250cc5ee812876609206564165 (fixed)
Affected range stops below 0.16.2, so it looks safe — our inference, not a vendor statement

Remediation

No guide yet

No remediation guidance has been written for this CVE yet. What the record does show:

SSVC — Action Prioritization

SSVCPoCNot automatablePartial impact

SSVC signals action urgency (what to patch first), separate from CVSS which measures severity.

CVSS

7.1HIGHEEF
Vector?

Quick Info

StatusDEFERRED
CWE
CWE-1284

Get alerted

Stop reading CVE feeds looking for your own stack

Track the products you run and VulnTracker tells you when a new CVE affects them — with what is known about fixing it, and nothing about the rest.

Free plan, no card