Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessAct as untrusted OpenVM prover
-
DeliveryCraft trace with expansion row at parent_height=0
-
ExploitFabricate subtree below memory leaf
-
ExecutionSwap digests to alter committed root
-
ImpactProduce verifying proof of false memory state
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A05:2025 - Injection
ASVS 5.0
V2 - Validation and Business Logic Input validation, allowlisting
|
| Exploitation Conditions | Exploitation requires the attacker to control proof generation (act as a malicious prover) in an OpenVM-based system, and applies only to proofs that use persistent memory, since the memory Merkle root binds VM memory state across continuation segment boundaries. The concrete trigger is a Merkle expansion row set with parent_height = 0 (or below) while expand_direction != 0, which pre-fix code failed to forbid, allowing a fabricated below-leaf subtree whose digest swaps change the committed root with no memory-bus operation. Affected code paths are OpenVM before 1.7.0 in the 1.x line and the affected 2.0 and 2.1 prereleases; deployments not using persistent memory, or already on 1.7.0 / 2.0.0-rc.3 / 2.1.0-preview or later, are not exploitable. Updating to a fixed version is the remediation stated by the vendor. |
| Impact | This is a zero-knowledge proof soundness flaw, and the available signals point to a genuine but scoped priority rather than a mass-exploitation emergency. The CVSS 4.0 vector (AV:N/AC:L/AT:N/PR:N/UI:N) scores 8.7 and is driven entirely by integrity: VI:H with VC:N and VA:N, consistent with a bug that forges the committed memory root without leaking data or affecting availability. The vuln.today decision label is 'this_week' (not act_now/emergency). No EPSS probability and no CISA KEV status were provided, so there is no evidence of active or widespread exploitation; the absence of EPSS/KEV should not be read as a clean bill of health, only as missing signals. A public counterexample demonstrating the attack ships in the fix commit's test suite (build_below_leaf_swap_subtree), so exploitability is well-understood even without a weaponized exploit. The real caveat is reachability: this is a malicious-prover soundness break, so the 'attacker' must control proof generation, and only OpenVM deployments using persistent memory across continuation segment boundaries are affected. For those users this undermines the core trust guarantee of their proofs and is high priority; for the broader population it is low-footprint. The 'Information Disclosure' tag conflicts with the integrity-only impact and appears mislabeled. |
| Exploit ScenarioDerived | An attacker acting as the prover in an OpenVM system that uses persistent memory crafts a malicious execution trace placing a Merkle expansion row at parent_height = 0 while expand_direction != 0, fabricating a subtree below a memory leaf and swapping digests to commit a different memory root with no corresponding memory-bus operation. The forged rows still balance against the Merkle and compression buses, so the resulting proof verifies and convinces a verifier of a false memory state across continuation segments. A public PoC reference exists as a counterexample test in the fix commit; it is not verified as a standalone working exploit. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Oct 30, 2026
Proof soundness in OpenVM before 1.7.0, and in affected 2.0 and 2.1 prereleases, can be undermined by a malicious prover who fabricates Merkle expansion rows at or below the leaf layer, allowing the committed memory root to be changed without a matching memory operation. The flaw affects proofs that use persistent memory across continuation segment boundaries; deployments not using persistent memory or running fixed releases 1.7.0, 2.0.0-rc.3, or 2.1.0-preview are not exploitable. Exploitation requires control of proof generation, no public exploit was identified at time of analysis, and the available priority signals point to a genuine but scoped issue rather than mass exploitation.
RemediationAI
Vendor-released patch: update to OpenVM 1.7.0 for the 1.x line, 2.0.0-rc.3 for 2.0 prereleases, or 2.1.0-preview for 2.1 prereleases; the vendor advisory states that updating to a fixed version is the remediation. For deployments that cannot update, the independent assessment notes that only proofs using persistent memory are exposed, so disabling persistent memory across continuation segment boundaries avoids the vulnerable soundness dependency, at the cost of losing that feature. Because exploitation requires the attacker to control proof generation, restricting proof generation to trusted provers or refusing proofs from untrusted provers reduces exposure, but it changes the trust model and is not a substitute for the patch. See the GitHub security advisory https://github.com/openvm-org/openvm/security/advisories/GHSA-396x-v8w4-9x82 and release tags https://github.com/openvm-org/openvm/releases/tag/v1.7.0, https://github.com/openvm-org/openvm/releases/tag/v2.0.0-rc.3, and https://github.com/openvm-org/openvm/releases/tag/v2.1.0-preview.
Affected VersionsENISA
Affected Packages
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
OpenVM is a zkVM framework whose MemoryMerkleAir circuit enforces Merkle tree expansion rows and balances them against the Merkle and compression buses; the memory Merkle root binds VM memory state across continuation segment boundaries. The root cause is missing validation in that AIR: pre-fix code did not forbid an expansion row at parent_height = 0 or below while expand_direction != 0, so a malicious prover could place an active expansion row at the leaf layer, fabricate a subtree below the leaf, swap digests inside it, and alter the committed root without a memory-bus operation for the changed leaf. The fix adds a parent_height_inv column and constrains parent_height * parent_height_inv = 1 whenever expand_direction != 0, rejecting active expansion rows at or below the leaf layer; the commit also updates the CUDA trace generator and adds counterexample tests. This is classed as CWE-20 improper input validation or constraint enforcement; the supplied tags label it Information Disclosure, while the advisory and independent assessment characterize it as a proof soundness and integrity flaw. The CVSS 4.0 vector is AV:N/AC:L/AT:N/PR:N/UI:N with VI:H, and the independent CVSS 3.1 assessment is AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:H/A:N. No CPE strings were provided in the input, and affected code paths are the OpenVM memory Merkle AIR in versions before 1.7.0 in the 1.x line and the affected 2.0 and 2.1 prereleases.
Know when the next one hits your stack
- 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
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
An untrusted prover needs no privileges (PR:N) and the forged proof is network-deliverable (AV:N/AC:L); impact is integrity-only forgery of the memory root (I:H), with no confidentiality or availability impact.
Primary rating from Vendor (github).
CVSS VectorVendor: github
Lifecycle Timeline
2DescriptionCVE.org
OpenVM is a performant and modular zkVM framework built for customization and extensibility. Before 1.7.0 in the 1.x line and in affected 2.0 and 2.1 prereleases, MemoryMerkleAir does not forbid Merkle expansion rows at parent_height = 0 or below while expand_direction != 0. A malicious prover can fabricate a subtree below a memory leaf and swap digests inside that subtree to change the committed memory root without a corresponding memory operation. The fraudulent rows still balance against the Merkle and compression buses and require no memory-bus operation for the changed leaf. Because the memory Merkle root binds VM memory state across continuation segment boundaries, this affects the soundness of OpenVM proofs using persistent memory. This issue is fixed in versions 1.7.0, 2.0.0-rc.3 and 2.1.0-preview.
Technical POC Analysis
CWE-20 (Improper Input Validation) at the circuit-constraint layer: MemoryMerkleAir in the openvm-circuit crate under-constrains the relationship between parentheight and expanddirection.
Full technical POC analysis - root cause, step-by-step exploitation and patch breakdown - is part of the Pro and Business plans.
Executive ViewAI
A soundness flaw in OpenVM's proof system (CVE-2026-62333) lets a malicious prover forge memory roots across continuation segments, undermining the integrity of zero-knowledge proofs for applications using persistent memory. Leadership should care because proof-based assurances-critical in blockchain, privacy, and verifiable compute-can be invalidated, eroding trust and potentially triggering compliance and reputational fallout, though exploitation requires controlling proof generation and no active exploitation is confirmed.
Apply vendor patch.
Threat Intelligence Overview
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.
EUVD-2026-114442
NVD
CVE.org
EPSS
GitHub
Exploit-DB