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.
Published: 2026-09-22
Score: 7.1 High
EPSS: n/a
KEV: No
Impact: Unauthorized use of paid resources
Action: Immediate Patch
AI Analysis

Impact

The vulnerability exists in ZenHive mpp's voucher processing when a voucher’s cumulative amount equals the channel’s already-accepted cumulative amount. The server treats such vouchers as idempotent successes, serves the protected resource, but does not deduct the quantity. Because each request presents a new challenge, the same signed voucher can be replayed indefinitely, allowing an attacker with an open payment channel to access paid resources without any additional charge. Resulting in unauthorized use of paid resources and financial loss for service providers.

Affected Systems

Affected systems are ZenHive mpp version 0.14.0 up to but excluding 0.16.2. The vulnerability impacts all deployments that rely on the open payment channel mechanism provided by mpp. In particular, any server running the MPP.Session.Actions module that accepts vouchers from clients is susceptible.

Risk and Exploitability

With a CVSS score of 7.1, the vulnerability presents a high impact level. No EPSS data is available, and the issue is not listed in the CISA KEV catalog, suggesting that exploitation is not confirmed in the wild. Nonetheless, the attack vector is network based, reachable via Plug, MCP, JSON‑RPC, or WebSocket transports. An attacker who can create or obtain a valid signed voucher and maintains an open payment channel could repeatedly replay the voucher for each new challenge, receiving uncharged paid units. Control of the client side is therefore required, but the network path makes remote exploitation feasible.

Generated by OpenCVE AI on September 22, 2026 at 12:20 UTC.

Remediation

No vendor fix or workaround currently provided.

OpenCVE Recommended Actions

  • Upgrade ZenHive mpp to version 0.16.2 or later, where voucher validation has been corrected to prevent idempotent success when cumulative amounts match.
  • Verify that any existing vouchers are invalidated and that the cumulativeAmount field is strictly checked against the channel’s current consumption before serving resources.
  • Implement monitoring of voucher replay activity; log all voucher usage and alert on repeated use of the same voucher signature across multiple sessions.
  • Review and enforce proper access control on the payment channel API to prevent unauthorized voucher generation and ensure payment records are tamper‑proof.

Generated by OpenCVE AI on September 22, 2026 at 12:20 UTC.

Tracking

Sign in to view the affected projects.

Advisories

No advisories yet.

History

Tue, 22 Sep 2026 12:45:00 +0000

Type Values Removed Values Added
First Time appeared Zenhive
Zenhive mpp
Vendors & Products Zenhive
Zenhive mpp

Tue, 22 Sep 2026 12:30:00 +0000

Type Values Removed Values Added
Metrics ssvc

{'options': {'Automatable': 'no', 'Exploitation': 'poc', 'Technical Impact': 'partial'}, 'version': '2.0.3'}


Tue, 22 Sep 2026 11:30:00 +0000

Type Values Removed Values Added
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.
Title Session voucher adding no new funds is accepted without a charge in mpp, serving paid resources for free
First Time appeared Zenhive
Zenhive mpp
Weaknesses CWE-1284
CPEs cpe:2.3:a:ZenHive:mpp:*:*:*:*:*:*:*:*
Vendors & Products Zenhive
Zenhive mpp
References
Metrics cvssV4_0

{'score': 7.1, 'vector': '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'}


cve-icon MITRE

Status: PUBLISHED

Assigner: EEF

Published:

Updated: 2026-09-22T12:04:43.291Z

Reserved: 2026-09-11T19:00:02.531Z

Link: CVE-2026-89420

cve-icon Vulnrichment

Updated: 2026-09-22T12:04:37.231Z

cve-icon NVD

Status : Received

Published: 2026-09-22T12:17:14.370

Modified: 2026-09-22T13:17:11.800

Link: CVE-2026-89420

cve-icon Redhat

No data.

cve-icon OpenCVE Enrichment

Updated: 2026-09-22T12:30:07Z

Weaknesses
  • CWE-1284

    Improper Validation of Specified Quantity in Input