CVE-2026-73541: Tempo fee sponsorship in mpp bounds each transaction but not aggregate exposure, allowing concurrent sponsor-wallet drain

Published Aug 19, 2026
·
Updated

Allocation of Resources Without Limits or Throttling in ZenHive mpp allows an unauthenticated remote client to drain the fee-payer wallet through concurrent sponsored payments, denying service to legitimate payers once it is empty.

MPP.Methods.Tempo.FeePayerPolicy enforces its ceilings (maxgas, maxfeepergas, maxpriorityfeepergas, the worst-case gaslimit maxfeepergas <= maxtotalfee budget cap, and a validity window) against one transaction at a time, and nothing accounts for exposure across concurrent requests. reservehashatomic/2 is keyed on the transaction hash, so it prevents duplicate broadcast of the same signed transaction but not N distinct sponsored transactions carrying distinct expiring nonces. Committed sponsor exposure is therefore N times maxtotalfee, bounded by nothing in the library, and the default 900 second validity window lets co-signed transactions stay broadcastable and uncounted for that entire period.

This issue affects mpp: from 0.2.0 before 0.12.0.

Affected Software

1 affected component
mpp>0.2.0<0.12.0

Event History

Aug 19, 2026
CVE Published
via MITRE·05:20 PM
Data Sourced
via MITRE·05:20 PM
DescriptionWeakness

Frequently Asked Questions

1

Which deployments are exposed to sponsor-wallet draining?

Deployments using mpp versions from 0.2.0 before 0.12.0 are affected when they use MPP.Methods.Tempo.FeePayerPolicy to sponsor transaction fees. An unauthenticated remote client can submit concurrent distinct sponsored transactions and exhaust the fee-payer wallet.

2

What does an attacker need to bypass the per-transaction fee limits?

The attacker needs multiple distinct sponsored transactions with distinct expiring nonces. The existing atomic reservation is keyed by transaction hash, so it blocks repeat broadcasts of the same signed transaction but does not aggregate exposure across different transaction hashes.

3

Are default settings relevant to exploitation?

Yes. The default validity window is 900 seconds, allowing co-signed transactions to remain broadcastable and uncounted for that period. During that window, concurrent committed exposure can grow to N times the configured max_total_fee without a library-enforced aggregate bound.

4

What is the impact after the sponsor wallet is depleted?

Legitimate payers can be denied service once the fee-payer wallet is empty. The per-transaction ceilings still apply, but they do not limit the total amount committed across concurrent requests.

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