CVE-2026-73829: CWE-367 Time-of-check Time-of-use (TOCTOU) Race Condition in ZenHive mpp
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.
AI Analysis
Technical Summary
The vulnerability in ZenHive mpp involves the type="hash" credential path in MPP.Methods.Tempo.verify/2, which performs a non-atomic sequence of checking if a payment hash is unused, verifying the payment on-chain, and then marking the hash as used. Because these steps are not atomic, concurrent requests with the same payment hash can all pass the unused check before any write occurs, allowing multiple redemptions of a single payment. Although an atomic check_and_mark/2 primitive exists and is used by the type="transaction" path, the hash path does not utilize it even when available. Exploitation requires a configured dedup store; the default nil store does not provide replay protection. This affects mpp versions from 0.2.0 before 0.6.1.
Potential Impact
An unauthenticated remote attacker can exploit this race condition to redeem a single confirmed on-chain payment multiple times, effectively bypassing intended payment restrictions and gaining unauthorized multiple accesses to paid resources. This could lead to financial loss or resource misuse. There is no indication of privilege escalation or system compromise beyond the payment replay issue.
Mitigation Recommendations
Patch status is not yet confirmed — check the vendor advisory for current remediation guidance. Until a fix is available, users should consider disabling or not configuring a dedup store for the hash credential path to avoid replay protection issues, or use the type="transaction" path which uses atomic operations. Monitor vendor communications for an official fix or update.
CVE-2026-73829: CWE-367 Time-of-check Time-of-use (TOCTOU) Race Condition in ZenHive mpp
Description
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.
CVSS v4.0
Score 6.3medium
Affected software
ZenHive
mpp
ZenHive
mpp
cpe:2.3:a:ZenHive:mpp:*:*:*:*:*:*:*:*Run on your own infrastructure? Check whether these packages are installed with threat-finder — our free open-source scanner.
Weaknesses
AI-Powered Analysis
Machine-generated threat intelligence
Technical Analysis
The vulnerability in ZenHive mpp involves the type="hash" credential path in MPP.Methods.Tempo.verify/2, which performs a non-atomic sequence of checking if a payment hash is unused, verifying the payment on-chain, and then marking the hash as used. Because these steps are not atomic, concurrent requests with the same payment hash can all pass the unused check before any write occurs, allowing multiple redemptions of a single payment. Although an atomic check_and_mark/2 primitive exists and is used by the type="transaction" path, the hash path does not utilize it even when available. Exploitation requires a configured dedup store; the default nil store does not provide replay protection. This affects mpp versions from 0.2.0 before 0.6.1.
Potential Impact
An unauthenticated remote attacker can exploit this race condition to redeem a single confirmed on-chain payment multiple times, effectively bypassing intended payment restrictions and gaining unauthorized multiple accesses to paid resources. This could lead to financial loss or resource misuse. There is no indication of privilege escalation or system compromise beyond the payment replay issue.
Mitigation Recommendations
Patch status is not yet confirmed — check the vendor advisory for current remediation guidance. Until a fix is available, users should consider disabling or not configuring a dedup store for the hash credential path to avoid replay protection issues, or use the type="transaction" path which uses atomic operations. Monitor vendor communications for an official fix or update.
Technical Details
- Data Version
- 5.2
- Assigner Short Name
- EEF
- Date Reserved
- 2026-08-17T11:15:02.320Z
- Cvss Version
- 4.0
- State
- PUBLISHED
Threat ID: 6a85eb32acd9273b4966725c
Added to database: 08/19/2026, 17:43:14 UTC
Last enriched: 08/19/2026, 17:53:17 UTC
Last updated: 10/03/2026, 14:46:10 UTC
Views: 80
Community Reviews
0 reviewsCrowdsource mitigation strategies, share intel context, and vote on the most helpful responses. Sign in to add your voice and help keep defenders ahead.
Want to contribute mitigation steps or threat intel context? Sign in or create an account to join the community discussion.
Actions
Updates to AI analysis require Pro Console access. Upgrade inside Console → Billing.
Need more coverage?
Upgrade to Pro Console for AI refresh and higher limits.
For incident response and remediation, OffSeq services can help resolve threats faster.
Latest Threats
Check if your credentials are on the dark web
Instant breach scanning across billions of leaked records. Free tier available.