CVE-2026-88255: ZenHive mpp · Improper Validation of Unsafe Equivalence in Input
Affects ZenHive mppSource CVE Database V5
Not known to be exploited · CVSS 6.3 Medium : upgrade to 0.16.2 when convenient.
Data as of 31 Oct 2026, 08:20 UTC
- EPSS
- 0.5% chance of exploitation in 30 days – higher than 44% of CVEsExploit Prediction Scoring System: the likelihood attackers will use this flaw soon.
- Patch
- Available – fixed in 0.16.2, e12bd4a1cea2e97c2a01fc059c48e5594a7b4a43
CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:N/VC:N/VI:L/VA:N/SC:N/SI:N/SA:NExploitation evidence
Disclosed: evidence found.
CVE published 16 Sep 2026
Detectable: no evidence on record.
No public nuclei template indexed
Weaponized: no evidence on record.
No public exploit code indexed in Metasploit or Exploit-DB
Exploited in the wildExploited: no evidence on record.
Not in CISA KEV and no source reports exploitation
Observed by OffSeq MirageSeen by Mirage: no evidence on record.
No attack traffic recorded by OffSeq Mirage sensors
A missing step is not evidence of safety. Sources: cve.org (opens in a new tab), the Metasploit, Exploit-DB and nuclei-templates index as of 30 Oct 2026.
What to do
Upgrade mpp to 0.16.2; mpp to e12bd4a1cea2e97c2a01fc059c48e5594a7b4a43.
Affected software
| Product | Affected | Fixed in |
|---|---|---|
| ZenHivempp | Affected
| Fixed in
|
| ZenHivempp | Affected
| Fixed in
|
Hexmpppkg:hex/mppOther threats | Affected
| Fixed in
|
CPE configurations (1)
cpe:2.3:a:ZenHive:mpp:*:*:*:*:*:*:*:*
Check your own hosts for these packages with threat-finder (opens in a new tab), our free open-source scanner.
AI-suggested
No vendor advisory or patch links are currently provided.
Description
Improper Validation of Unsafe Equivalence in Input in ZenHive mpp allows an unauthenticated remote client to pass the Tempo duplicate-submission gate twice with one signed transaction. MPP.Methods.Tempo reserves the pre-broadcast dedup slot on the caller-supplied hex in reserve_hash_atomic/2, keyed through store_key/1 on tx.raw rather than on a canonical form of the transaction. The deserializer stores the caller's hex verbatim and accepts both recovery-id encodings, so one signed transaction submitted once with v=27 and once with v=0 yields two distinct reserve keys, and both pass the reserve and reach the broadcast path. The plug-level credential replay store is deliberately carved out for tempo in lib/mpp/replay.ex, leaving this reserve as the only gate, and the post-broadcast mark writes the canonical hash key that the raw-keyed reserve never reads. What the duplicate submission yields depends on the node: a nonce-reuse rejection fails closed, while a node that answers with the canonical hash for an already-known transaction returns a second valid Payment-Receipt for a single on-chain payment. This issue affects mpp: from 0.2.0 before 0.16.2.
References
- github.com/ZenHive/mpp/security/advisories/GHSA-8x7x-5j8g-8hcx (opens in a new tab)
- cna.erlef.org/cves/CVE-2026-88255.html (opens in a new tab)
- osv.dev/vulnerability/EEF-CVE-2026-88255 (opens in a new tab)
- github.com/ZenHive/mpp/commit/f8904666061fbab695874856d8fcd02c471dfe1b (opens in a new tab)
- github.com/ZenHive/mpp/commit/e12bd4a1cea2e97c2a01fc059c48e5594a7b4a43 (opens in a new tab)