Authentication bypass by capture-replay in ZenHive mpp
Key facts
- Attack vector
- Network
- Privileges required
- None
- User interaction
- None
- Attack complexity
- High
- Attack requirements
- Present
- Impact type
- Security bypass
- Confidentiality · integrity · availability
- None · High · None
- Fix status
- Fixed
Attack profile from CVSS 4.0 · CNA. Fix status from CNA. Impact type from CWE-294.
Summary
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.
Why it matters now
SSVC decision points
CISA ADP · SSVC 2.0.3
- Exploitation
- None
- Automatable
- No
- Technical impact
- Partial
The decision (Track, Attend, Act) also depends on your mission and well-being impact; see CISA's SSVC guide.
Affected products
| Vendor | Product | Affected versions | Fixed in | Status | Source |
|---|---|---|---|---|---|
| ZenHive | mpp | 0.14.0 to before 0.16.2 | 0.16.2 | Patch available | CNA |
- mpp VendorZenHive Affected 0.14.0 to before 0.16.2 Fixed in 0.16.2 Patch available CNA
CPE names CNA · 1
| CPE | Versions | Role | Vendor |
|---|---|---|---|
| cpe:2.3:a:ZenHive:mpp:*:*:*:*:*:*:*:* | — | — | — |
- cpe:2.3:a:ZenHive:mpp:*:*:*:*:*:*:*:* Versions — — ·—
Remediation
- Fix · CNA mpp (ZenHive) Fixed in 0.16.2
Fixed in the same release
Records fixed by the same vendor advisory or release, as the CNA lists them.
- Release ·
ZenHive mpp 0.16.2
2 records Highest priority Priority MEDIUM 1 MEDIUM, 1 LOW
Other records, highest priority first
- TI-2026-60473 Session voucher adding no new funds is accepted without a charge in mpp, serving paid resources for freePriority MEDIUM 64
Timeline
- 2026-10-02 Threatist record created from CVE-2026-87119
- 2026-10-03 Alias added: GHSA-h97r-55w6-6rfg
References
More ZenHive vulnerabilities
- TI-2026-42571 Unbounded max_fee_per_gas in mpp Tempo fee-payer enables single-request wallet drain CVSS 4.0HIGH 8.3
- TI-2026-42570 Unbounded access list in mpp Tempo fee-payer inflates gas cost per payment CVSS 4.0HIGH 8.3
- TI-2026-42392 Missing gas_limit validation in mpp Tempo fee-payer enables wallet drain CVSS 4.0HIGH 8.2
- TI-2026-60473 Session voucher adding no new funds is accepted without a charge in mpp, serving paid resources for free CVSS 4.0HIGH 7.1
- TI-2026-47746 On-chain transfer proof is not single-use in mpp EVM payment method, enabling cross-challenge replay CVSS 4.0HIGH 8.7
- TI-2026-51635 Resource allocation without limits in ZenHive mpp CVSS 4.0HIGH 8.3
Sources
- CVE-2026-87119 · CVE Program
- CVE-2026-87119 · NVD
- FIRST EPSS
- GHSA-h97r-55w6-6rfg · GitHub Advisory Database · CC BY 4.0
This product uses the NVD API but is not endorsed or certified by the NVD. Sources and licences