Skip to main content

ZenHive mpp CVE-2026-73829

| EUVDEUVD-2026-62591 MEDIUM
Time-of-check Time-of-use (TOCTOU) Race Condition (CWE-367)
2026-08-19 EEF GHSA-vjfr-ffhr-5g8p
6.3
CVSS 4.0 · Vendor: EEF
Share

Severity by source

Vendor (EEF) PRIMARY
6.3 MEDIUM
CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:N/VC:N/VI:L/VA:N/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
vuln.today AI
3.7 LOW

AV:N as the endpoint is network-reachable; AC:H because a specific non-default dedup store configuration must be present and concurrent timing must align; PR:N confirmed by CVSS 4.0 vector; integrity-only impact.

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

Primary rating from Vendor (EEF).

CVSS VectorVendor: EEF

CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:N/VC:N/VI:L/VA:N/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
Attack Vector
Network
Attack Complexity
Low
Privileges Required
None
User Interaction
None
Scope
X

Lifecycle Timeline

2
Source Code Evidence Fetched
Aug 19, 2026 - 17:51 vuln.today
Analysis Generated
Aug 19, 2026 - 17:51 vuln.today

DescriptionCVE.org

Time-of-check Time-of-use (TOCTOU) Race Condition in ZenHive mpp allows an unauthenticated remote client to redeem one confirmed on-chain payment for multiple paid-resource accesses.

The type="hash" credential path in MPP.Methods.Tempo.verify/2 guards against replay with a non-atomic check-then-mark sequence: check_hash_unused/2 reads the dedup store, an eth_getTransactionReceipt round trip verifies the payment on chain, and only then does mark_hash_used/2 write the mark. Concurrent requests carrying the same settled payment hash all pass the read before any of them writes, so each is issued a receipt. The store's atomic check_and_mark/2 primitive is available and used by the type="transaction" path, but the hash path calls plain get and put even when the configured store implements it. Exploitation requires a dedup store to be configured; the default nil store is stateless and documented as offering no replay protection at all.

This issue affects mpp: from 0.2.0 before 0.6.1.

AnalysisAI

Payment-replay protection in ZenHive mpp's Tempo hash-credential path is defeated by a TOCTOU race condition, allowing a single confirmed on-chain payment hash to be redeemed for multiple paid-resource grants. The race window spans an eth_getTransactionReceipt RPC round trip - potentially hundreds of milliseconds - during which concurrent unauthenticated requests all pass the non-atomic read guard before any write completes. …

Unlock full vulnerability intelligence

  • Risk assessment & exploitation conditions
  • Attack chain visualization
  • Remediation with exact patch versions
  • Threat intelligence from 22 sources
  • Personal watchlist & email alerts

Free forever · No credit card required

Attack ChainAIDerived

Hypothetical attack flow derived from CVE metadata

Access
Obtain valid settled on-chain payment hash
Delivery
Submit concurrent identical hash-credential requests to Tempo endpoint
Exploit
All requests pass non-atomic check_hash_unused read
Execution
eth_getTransactionReceipt verifies payment per request before any write lands
Persist
Each request receives valid resource-access receipt
Impact
Single payment redeemed multiple times

Vulnerability AssessmentAI

Exploitation Exploitation requires that a non-nil dedup store be explicitly configured in the mpp deployment - the default nil store is stateless and documented as offering no replay protection, so deployments using the default are unaffected by this specific race (though they already lack any replay defense). … Additional conditions and limiting factors are described in the full assessment.
Risk Assessment The CVSS 4.0 score of 6.3 is reasonable for the raw mechanics, but the financial impact on services using mpp for payment gating likely exceeds what the VI:L rating conveys - a single payment can unlock arbitrarily many resource grants depending on how quickly an attacker can saturate the race window. … Full risk analysis with EPSS, KEV, and SSVC signal comparison available after sign-in.
Exploit Scenario An attacker identifies a service running mpp 0.2.0-0.6.0 with a configured dedup store and obtains or observes a valid confirmed on-chain payment hash (e.g., by making a legitimate small payment). The attacker then fans out two or more concurrent HTTP requests to the Tempo verification endpoint carrying the same hash; all requests pass check_hash_unused/2 before the on-chain RPC completes for any of them, each independently verifies the payment on-chain, and each receives a valid resource-access receipt - granting multiple accesses for the cost of one payment. …
Remediation Upgrade to mpp 0.6.1 or later, which replaces mark_hash_used/2 with commit_hash_used/2 that routes through the store's atomic check_and_mark/2 primitive when supported, closing the race at commit time rather than at the initial read (patch commit 46c5b0e1311da7d92190dc7d9ea89027a1d365e9; advisory at https://github.com/ZenHive/mpp/security/advisories/GHSA-w8j7-7qc3-5f24). … Detailed patch versions, workarounds, and compensating controls in full report.

Threat intelligence, references, and detailed analysis are available after sign-in.

Share

CVE-2026-73829 vulnerability details – vuln.today

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