CVE-2026-87119: mpp Tempo subscription key authorization is not bound to the issuing challenge, allowing a captured activation credential to be replayed

Published Sep 22, 2026
·
Updated

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/keyauthorization.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, claimactivation 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.

Affected Software

1 affected component
hex/mpp>=0.14.0<0.16.2

Remediation

Recommended actions to resolve this vulnerability, in priority order.

  1. Upgrade

    Upgrade mpp to a version that resolves this vulnerability.

    Fixed in 0.16.2

Event History

Sep 22, 2026
CVE Published
via MITRE·11:16 AM
Data Sourced
via MITRE·11:16 AM
DescriptionWeakness
Data Sourced
via NVD·12:17 PM
DescriptionSeverityWeakness

Frequently Asked Questions

1

Which deployments are affected?

Deployments using mpp versions 0.14.0 through versions before 0.16.2 are affected. The vulnerable behavior is in Tempo subscription activation handling.

2

What does an attacker need to exploit this?

An attacker needs a captured subscription activation credential, specifically a payer-signed Tempo KeyAuthorization for the relevant subscription terms. Because the authorization is not bound to the issuing challenge, it can be submitted with fresh challenges while it remains valid.

3

How can replaying the credential cause additional charges?

A fresh challenge produces a different activation deduplication key, allowing activation to succeed again and a new subscription transaction to be built and broadcast. Each successful replay can charge the payer a new first-period settlement and re-authorize the server key, until subscription expiry or chain behavior prevents further re-installation.

Contact

SecAlerts Pty Ltd.
132 Wickham Terrace
Fortitude Valley,
QLD 4006, Australia
info@secalerts.co
By using SecAlerts services, you agree to our services end-user license agreement. This website is safeguarded by reCAPTCHA and governed by the Google Privacy Policy and Terms of Service. All names, logos, and brands of products are owned by their respective owners, and any usage of these names, logos, and brands for identification purposes only does not imply endorsement. If you possess any content that requires removal, please get in touch with us.
© 2026 SecAlerts Pty Ltd.
ABN: 70 645 966 203, ACN: 645 966 203