Skip to main content

ZenHive mpp EUVDEUVD-2026-62594

| CVE-2026-67581 HIGH
Authentication Bypass by Capture-replay (CWE-294)
2026-08-19 EEF GHSA-vrg5-xm7q-qcjh
8.7
CVSS 4.0 · Vendor: EEF
View

Attack ChainAIDerived

Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain

  1. Recon
    Identify target static-price EVM payment endpoint
  2. Delivery
    Search public block explorer for historical transfer matching token/recipient/amount
  3. Exploit
    Submit found transaction hash as payment credential
  4. Install
    MPP.Methods.EVM.verify/2 validates on-chain transfer parameters
  5. C2
    Fresh challenge.id bypasses dedup check
  6. Execute
    Obtain paid resource without payment
  7. Impact
    Repeat indefinitely with same hash

Vulnerability Assessment

Weakness
CWE
OWASP Top 10:2025
A07:2025 - Authentication Failures
ASVS 5.0
V6 - Authentication Replay attack prevention
Exploitation Conditions

Exploitation requires that the target application uses MPP.Methods.EVM for payment verification and operates a static-price route - meaning the charge token, recipient address, and amount are fixed or predictable across requests. The attacker must locate a historical on-chain transfer to the service's wallet address matching those exact parameters; because all Ethereum transactions are publicly visible on block explorers, this requires no special access or interception capability. The application must NOT have configured the 'store' dedup option introduced in 0.6.3 (the option was absent in affected versions). Dynamic pricing - where the charge amount varies per session - significantly limits exploitation because historical transfers are less likely to match, though does not eliminate it if an attacker can influence or predict the price. Exploitation is fully unauthenticated and network-accessible. No user interaction is required.

Impact

The CVSS 4.0 score of 8.7 (AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:H/VA:N) accurately reflects the ease of exploitation: no authentication, no complexity, and full network accessibility. VI:H captures the financial integrity impact - attackers obtain paid resources without payment. No EPSS score is available in the provided data, and there is no CISA KEV listing, meaning active exploitation is unconfirmed. Despite the lack of confirmed exploitation, real-world risk is elevated because the attack surface is uniquely favorable: Ethereum transactions are permanently and publicly visible on block explorers, meaning an attacker does not need to intercept traffic or compromise any system to obtain a valid transaction hash. The attack is likely automatable against static-price routes. Dynamic pricing partially constrains but does not eliminate risk. No conflicting signals exist between the CVSS vector and the description; the network vector and lack of privilege requirements are consistent with how the EVM verify endpoint is called.

Exploit ScenarioDerived

An attacker queries a public block explorer such as Etherscan for historical ERC-20 or native ETH transfers to the target service's wallet address matching its advertised static price, obtaining a valid on-chain transaction hash at zero cost. The attacker submits that hash as the payment credential to the mpp-protected HTTP endpoint, which calls MPP.Methods.EVM.verify/2; the library confirms the on-chain transfer details match the charge parameters and issues a new challenge.id each request, bypassing deduplication. The attacker repeats this submission indefinitely, gaining unlimited access to paid resources using a single historical payment they did not originate.

This Week Schedule remediation this week. Why: HIGH severity (CVSS 7.0-8.9).
Patch available 0.5% exploitation probability (EPSS)

Get an e-mail when this CVE is exploited, patched or re-scored. Free account.

Alert me

AnalysisAIv1 – Aug 19, 2026

Replay of settled EVM blockchain transaction hashes against ZenHive mpp versions 0.3.0-0.6.2 allows unauthenticated remote attackers to obtain paid resources at no cost. MPP.Methods.EVM.verify/2 validates payment by matching a submitted transaction hash against on-chain token/recipient/amount fields but neither binds the proof to a specific challenge nor records prior use; because MPP.Plug regenerates challenge.id on every 402 response, any historical on-chain transfer visible on a public block explorer can satisfy an unlimited number of subsequent payment challenges on a static-price route. No public exploit code has been identified at time of analysis and no CISA KEV listing exists, though the attack prerequisites are trivially met given the public nature of blockchain transaction data.

RemediationAI

Upgrade mpp to version 0.6.3 or later, which introduces transaction-hash deduplication via a new optional but strongly recommended 'store' configuration key in MPP.Methods.EVM. The patch commit ecc038088b1cda09ad8a84acc6cc112addb4a68f (https://github.com/ZenHive/mpp/commit/ecc038088b1cda09ad8a84acc6cc112addb4a68f) adds check_hash_unused and commit_hash_used pipeline steps; configure 'store' to MPP.Tempo.ConCacheStore or any module implementing MPP.Tempo.Store (get/1, put/2) on all EVM payment routes. The store TTL must be at least 2× the challenge expires_in to prevent a hash from being evicted and replayed while its challenge window is still valid. A documented residual limitation remains even after patching: on first presentation, any unrelated on-chain transfer that happens to match the charge's token/recipient/amount parameters is accepted, because the hash carries no on-chain binding to a specific challenge; full per-challenge attribution requires the EIP-3009 authorization path (nonce = keccak256(challengeId ‖ realm)), tracked separately in the vendor roadmap. Until the EIP-3009 path is available, prefer dynamic pricing or per-session recipient addresses to reduce the probability of an unrelated transfer colliding with a charge. Full advisory: https://github.com/ZenHive/mpp/security/advisories/GHSA-vp5h-xh25-44wf.

Affected VersionsENISA

mpp 0.3.0 <0.6.3
mpp 65b9e425ce27631c786a5b380b5e4c5ae607ec6d <ecc038088b1cda09ad8a84acc6cc112addb4a68f

Affected Packages

euvd mpp fix: 0.6.3

Source: OSV (Open Source Vulnerabilities)

Affects your stack

Affects 1 package in euvd

Checking this CVE against your own stacks and servers is part of the Basic plan and up.

Technical ContextAI · show details

mpp (cpe:2.3:a:zenhive:mpp) is an Elixir Hex library implementing HTTP 402 Payment Required monetization flows for Ethereum-compatible (EVM) networks. The vulnerable component, MPP.Methods.EVM (lib/mpp/methods/evm.ex), retrieves a transaction receipt by hash from an RPC endpoint and checks that the on-chain transfer matches the charge's token contract, recipient address, and amount for ERC-20 transfers, or recipient and ETH value for native transfers. CWE-294 (Authentication Bypass by Capture-replay) applies because the verification logic contains no nonce, timestamp binding, or single-use enforcement tied to a specific challenge: the MPP.Plug deduplication store keys on challenge.id, but a new challenge.id is generated for every 402 response, so a replayed transaction hash always arrives in a fresh dedup context. The fix introduces a configurable MPP.Tempo.Store-backed dedup layer that records each transaction hash as used after successful verification and rejects subsequent presentations of the same hash, with atomic check_and_mark support to close the check-then-commit race window.

Know when Mpp gets its next vulnerability

  • Watch products and get an email when something new is published
  • Check this CVE against your own stack and servers
  • Exploit and PoC references, threat intelligence from 22 sources

No credit card · 7-day full trial

Severity by source

Vendor (EEF) PRIMARY 8.7 HIGH
CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:H/VA:N/SC:N/SI:N/SA:N
vuln.today AI 7.5 HIGH

Network-accessible with no authentication or user interaction required; integrity impact is high (financial bypass via replay), with no confidentiality or availability impact and no scope change.

3.1 AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:H/A:N
4.0 AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:H/VA:N/SC:N/SI:N/SA:N

Primary rating from Vendor (EEF).

CVSS VectorVendor: EEF

Attack Vector
Network
Attack Complexity
Low
Attack Requirements
None
Privileges Required
None
User Interaction
None
Vulnerable system: Confidentiality
None
Vulnerable system: Integrity
High
Vulnerable system: Availability
None
Subsequent system: Confidentiality
None
Subsequent system: Integrity
None
Subsequent system: Availability
None

DescriptionCVE.org

Authentication Bypass by Capture-replay in ZenHive mpp allows an unauthenticated remote client to obtain paid resources by resubmitting one settled on-chain transfer.

MPP.Methods.EVM.verify/2 accepts a transaction-hash credential and matches a transfer purely on token, to and amount (ERC-20) or to and value (native). It binds the proof neither to the challenge being verified nor to any record of prior use, and the generic MPP.Plug dedup store keys on challenge.id, which is regenerated for every 402 response. On a static-price route, a single historical transfer matching the charge therefore satisfies an unbounded number of later charges, including transfers an attacker can read off a public block explorer.

This issue affects mpp: from 0.3.0 before 0.6.3.

Executive ViewAI

Why It Matters

ZenHive multi-party payment (MPP) protocol versions 0.3.0-0.6.2 contain a transaction replay vulnerability enabling unauthenticated attackers to obtain paid resources without payment by reusing legitimate blockchain transactions. This directly impacts revenue, service integrity, and customer trust for any organization operating affected MPP instances. Organizations using these versions face immediate financial risk and should prioritize patching.

Business Impact: High
Compensating Controls

Apply vendor patch.

Threat Intelligence Overview

EPSS Score
0.5%
Top 59% exploitable
Prevalence
Rare
niche Elixir blockchain payment library, small ecosystem footprint
Data Quality
6 sources
Confidence: High
EUVD NVD CVE.org EPSS Vulnrichment GitHub VulDB

How this decision was reached

The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.

SignalValue
Severity HIGH
CISA KEV No
Public POC No
EPSS 0.5%
Patch available Yes
Active threat No
Deciding rule
HIGH severity (CVSS 7.0-8.9)
What every action level means
Emergency Immediate action required. Criteria: CRITICAL + in CISA KEV (actively exploited) without patch, OR CRITICAL + EPSS > 30% without patch, OR CRITICAL + active threat signals without patch.
Act Now Prioritize within 24-48h. Criteria: in KEV with patch available, OR CRITICAL + public POC, OR HIGH + EPSS > 10%, OR CRITICAL + active threat, OR any CRITICAL severity.
This Week Schedule remediation this week. Criteria: HIGH severity (CVSS 7.0-8.9). Patch within normal change window.
This Month Plan within 30 days. Criteria: MEDIUM severity (CVSS 4.0-6.9), lower exploitation probability. Include in regular patch cycle.
Monitor Track and reassess. Criteria: LOW severity (CVSS 0.1-3.9), minimal exploitation risk. No immediate action needed.

SSVC AssessmentENISA

SSVC Decision
Scheduled
Exploitation
None
System Exposure· derived
Open
Automatable
Yes
Human Impact
High
Technical Impact
Partial

Priority Score

44
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +44
PoC: 0
Weaponized: 0
Threat intel: 0
Gov advisory: 0

Attack Technique

Authentication bypass attacks exploit flaws in the verification mechanisms that control access to systems and applications.

More in Mpp

View all
CVE-2026-82750 HIGH POC
8.3 Sep 06

Missing validation of the EIP-7702 aa_authorization_list field in ZenHive mpp's Tempo payment sponsorship module allows

CVE-2026-82751 HIGH POC
8.3 Sep 06

Gas-cost inflation and unauthorized access key provisioning in ZenHive mpp (versions 0.2.0 through 0.15.x) allows any un

CVE-2026-73541 HIGH
8.3 Aug 19

Concurrent sponsored-payment flooding in ZenHive mpp (versions 0.2.0 through 0.12.0) allows an unauthenticated remote cl

CVE-2026-59694 HIGH
8.3 Jul 17

Economic resource exhaustion in the ZenHive mpp Elixir library (versions 0.2.0 through 0.5.x) lets an unauthenticated re

CVE-2026-59695 HIGH
8.3 Jul 17

Fee-payer wallet draining in ZenHive mpp (Elixir) 0.2.0-0.5.x lets an unauthenticated remote client empty the sponsor's

CVE-2026-73136 HIGH
8.2 Aug 19

Capture-replay authentication bypass in ZenHive mpp versions 0.6.1-0.6.3 allows unauthenticated network attackers to cla

CVE-2026-59252 HIGH
8.2 Jul 17

Wallet-draining denial of service in ZenHive mpp (Elixir library) versions 0.2.0 through 0.5.x affects deployments confi

CVE-2026-87119 HIGH
8.2 Sep 22

Replay of a captured Tempo subscription credential in ZenHive mpp 0.14.0 through 0.16.1 lets an attacker who already hol

CVE-2026-89420 HIGH
7.1 Sep 22

ZenHive mpp versions 0.14.0 through 0.16.1 fail to charge clients that hold an open payment channel, allowing an authent

CVE-2026-88255 MEDIUM
6.3 Sep 16

Duplicate-submission gate bypass in the Tempo payment method of ZenHive mpp (versions 0.2.0 through 0.16.1) lets an unau

CVE-2026-89186 MEDIUM
6.3 Sep 16

ZenHive mpp (MPP.Plug payment middleware for Elixir/Phoenix) versions 0.1.0 through 0.16.1 can allow a shared HTTP cache

CVE-2026-73829 MEDIUM
6.3 Aug 19

Payment-replay protection in ZenHive mpp's Tempo hash-credential path is defeated by a TOCTOU race condition, allowing a

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy