{"id":"CVE-2026-73541","title":"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.\n\nMPP.…","summary":"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.\n\nMPP.…","severity":"high","cvss":8.2,"cvssVector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:L/A:H","cwe":["CWE-770"],"vendor":"zenhive","product":"machine_payments_protocol","affected":["machine_payments_protocol >= 0.2.0, < 0.12.0"],"patched":["machine_payments_protocol 0.12.0"],"published":"2026-08-19","updated":"2026-09-10","sourceUpdated":"2026-09-10T18:24:36.653","source":"NVD","sourceUrl":"https://nvd.nist.gov/vuln/detail/CVE-2026-73541","references":[{"url":"https://cna.erlef.org/cves/CVE-2026-73541.html","label":"6b3ad84c-e1a6-4bf7-a703-f496b71e49db"},{"url":"https://github.com/ZenHive/mpp/commit/ddc46868fba57ccebb567c04709812b466123076","label":"6b3ad84c-e1a6-4bf7-a703-f496b71e49db"},{"url":"https://github.com/ZenHive/mpp/security/advisories/GHSA-j4j7-7xpr-c7cr","label":"6b3ad84c-e1a6-4bf7-a703-f496b71e49db"},{"url":"https://osv.dev/vulnerability/EEF-CVE-2026-73541","label":"6b3ad84c-e1a6-4bf7-a703-f496b71e49db"}],"tags":["nvd"],"epss":0.00421,"epssPercentile":0.36081,"ingestedAt":"2026-09-10T19:03:26.846Z","slug":"CVE-2026-73541","body":"## Overview\n\nAllocation 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.\n\nMPP.Methods.Tempo.FeePayerPolicy enforces its ceilings (max_gas, max_fee_per_gas, max_priority_fee_per_gas, the worst-case gas_limit * max_fee_per_gas <= max_total_fee budget cap, and a validity window) against one transaction at a time, and nothing accounts for exposure across concurrent requests. reserve_hash_atomic/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 max_total_fee, 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.\n\nThis issue affects mpp: from 0.2.0 before 0.12.0.\n\n## Affected\n\n- `machine_payments_protocol >= 0.2.0, < 0.12.0`\n\n## Remediation\n\nUpgrade past the affected range:\n\n- `machine_payments_protocol 0.12.0`","depth":"twilight","depthScore":45,"depthScoreParts":{"impact":45.1,"likelihood":0.1,"exploitation":0,"ransomware":0},"changes":[]}