ZeroHour

CVE-2026-82751

niche

Unvalidated key_authorization field in ZenHive mpp inflates sponsored payment gas

CVSS 4.0
8.3 high
EPSS
<1%p26
Published
()
Modified
AI analysis

ZenHive mpp, which lets a server sponsor (pay the gas for) clients' Tempo payments, fails to validate the optional key_authorization field in client-signed 0x76 envelopes: the FeePayerPolicy.measure/3 routine bounds the gas fields, fee budget, validity window and access list, but never checks whether that field is present. An unauthenticated remote client can attach a fully signed key authorization — provisioning a new access key with token spending limits on its own account — alongside an ordinary sponsored payment, and the key plus each spending-limit entry is billed to the sponsor as intrinsic gas, bounded only by the gas_limit ceiling. At the reporter's default of one key with three token limits, the sponsor's cost rises from about 46,587 to about 1,808,700 gas (roughly a 39x increase), and the client ends up with a valid access key it paid nothing for. Any operator running mpp in the affected range (all versions from 0.2.0 before 0.16.1) to sponsor Tempo payments can be repeatedly overbilled this way. No public proof-of-concept is known, the flaw is not listed in CISA's KEV, and EPSS estimates only a 0.3% chance of exploitation within 30 days.

What to do: Upgrade mpp to version 0.16.1 or later. As an interim mitigation, tighten the sponsored gas_limit ceiling, since the overbilling is bounded only by that limit, and review any access keys provisioned on client accounts through sponsored payments, as clients may have obtained valid keys at the sponsor's expense.

Affected
ZenHive mppall versions from 0.2.0 before 0.16.1
Estimated exposure
nichelikely no more than a few thousand server deployments (early-stage 0.x library; no public install data) — No public adoption counts or internet-scan data exist for mpp; this estimate rests on it being a new, pre-1.0 open-source payment component used only by operators running Tempo fee-sponsorship servers, a small and specialized deployment…

Order-of-magnitude estimate by the model from install counts, market share and public scan data it knows; verify before quoting.

Description

Improper Validation of Specified Quantity in Input in ZenHive mpp allows an unauthenticated remote client to inflate the fee-payer's gas cost per sponsored payment by a large multiplier and to have the sponsor pay for provisioning an access key on the client's own account. When the server sponsors Tempo payments, MPP.Methods.Tempo.FeePayerPolicy.measure/3 in lib/mpp/methods/tempo/fee_payer_policy.ex bounds the gas fields, the fee budget, the validity window and the access list of the client-signed 0x76 envelope, but does not check whether the envelope carries the optional key_authorization field. A client can attach a fully signed key authorization, provisioning a new access key with token spending limits on its own account, alongside the normal payment call. The key and each limit entry are persistent storage writes billed as intrinsic gas to the sponsor, bounded only by the gas_limit ceiling. At the reporter's default of one key with three token limits the sponsored cost rises from about 46,587 gas to about 1,808,700 gas, and the client keeps a valid access key it paid nothing for. This issue affects mpp: from 0.2.0 before 0.16.1.

Weakness
CWE-1284
Vector
CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:N/VC:N/VI:H/VA:L/SC:N/SI:N/SA:N/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X

In the news

No ingested article mentions this CVE yet.