Description
Authentication Bypass by Capture-replay in ZenHive mpp allows an attacker holding a captured subscription activation credential to charge the payer repeatedly.

The payer signs a Tempo KeyAuthorization over the chain id, key type, key id, expiry, limits and scopes only, with nothing tying it to the challenge that prompted it. MPP.Methods.Tempo.KeyAuthorization.verify/3 in lib/mpp/methods/tempo/key_authorization.ex pins each of those signed fields against the subscription request, and the access key it pins is a static per-endpoint server key, so one signed authorization verifies against every challenge the server issues for the same subscription terms. MPP.Methods.Tempo.Subscription.activate/4 deduplicates activations by challenge id, so presenting the captured credential under a fresh challenge produces a different dedup key, claim_activation succeeds, and the subscription transaction is built and broadcast again. Each replay charges the payer's wallet a new first-period settlement and re-authorizes the server key, bounded only by the subscription expiry and the chain's own semantics for re-installing an existing key.

This issue affects mpp: from 0.14.0 before 0.16.2.
Published: 2026-09-22
Score: 8.2 High
EPSS: n/a
KEV: No
Impact: Authentication bypass allows repeated credit charges
Action: Immediate Patch
AI Analysis

Impact

The vulnerability arises when a Tempo KeyAuthorization contains all the subscription parameters but is not tied to the challenge that requested it. Because the signed fields do not reference the particular challenge, an attacker who intercepts an activation credential can replay it under a new challenge, causing the server to accept the activation again. As a result, the payer’s wallet is charged multiple times for the same subscription period, leading to unauthorized financial losses.

Affected Systems

ZenHive's MPP product is affected in all releases from version 0.14.0 up to (but not including) 0.16.2. Any deployment running one of these versions is vulnerable if the subscription activation process uses Tempo KeyAuthorizations.

Risk and Exploitability

With a CVSS score of 8.2 and no listed KEV entry, the vulnerability is considered high severity. The EPSS score is not available, so the exact exploitation probability cannot be quantified, but replay attacks can be performed with little effort once a credential is captured. The attacker would need only the signed KeyAuthorization and the ability to submit it to the server; no additional code execution or privileged access is required. The vulnerability is not known to be actively exploited in the wild, but the potential for financial impact is substantial.

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

Remediation

No vendor fix or workaround currently provided.

OpenCVE Recommended Actions

  • Upgrade MPP to version 0.16.2 or later.
  • Revoke any subscription keys that may have been activated using the captured credentials.
  • Implement monitoring or logging of duplicate activation attempts to detect repeated charges.

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': 'none', 'Technical Impact': 'partial'}, 'version': '2.0.3'}


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

Type Values Removed Values Added
Description Authentication Bypass by Capture-replay in ZenHive mpp allows an attacker holding a captured subscription activation credential to charge the payer repeatedly. The payer signs a Tempo KeyAuthorization over the chain id, key type, key id, expiry, limits and scopes only, with nothing tying it to the challenge that prompted it. MPP.Methods.Tempo.KeyAuthorization.verify/3 in lib/mpp/methods/tempo/key_authorization.ex pins each of those signed fields against the subscription request, and the access key it pins is a static per-endpoint server key, so one signed authorization verifies against every challenge the server issues for the same subscription terms. MPP.Methods.Tempo.Subscription.activate/4 deduplicates activations by challenge id, so presenting the captured credential under a fresh challenge produces a different dedup key, claim_activation succeeds, and the subscription transaction is built and broadcast again. Each replay charges the payer's wallet a new first-period settlement and re-authorizes the server key, bounded only by the subscription expiry and the chain's own semantics for re-installing an existing key. This issue affects mpp: from 0.14.0 before 0.16.2.
Title mpp Tempo subscription key authorization is not bound to the issuing challenge, allowing a captured activation credential to be replayed
First Time appeared Zenhive
Zenhive mpp
Weaknesses CWE-294
CPEs cpe:2.3:a:ZenHive:mpp:*:*:*:*:*:*:*:*
Vendors & Products Zenhive
Zenhive mpp
References
Metrics cvssV4_0

{'score': 8.2, 'vector': 'CVSS:4.0/AV:N/AC:H/AT:P/PR:N/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:02:31.484Z

Reserved: 2026-09-11T18:00:02.032Z

Link: CVE-2026-87119

cve-icon Vulnrichment

Updated: 2026-09-22T12:02:21.205Z

cve-icon NVD

Status : Received

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

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

Link: CVE-2026-87119

cve-icon Redhat

No data.

cve-icon OpenCVE Enrichment

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

Weaknesses
  • CWE-294

    Authentication Bypass by Capture-replay