OpenVM: MemoryMerkleAir allows below-leaf rows to alter memory roots
Impact
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…
Source excerpt · GitHub_MThe fraudulent rows still balance against the Merkle and compression buses and require no memory-bus operation for the changed leaf.
Affected packages
Affected products
Vendor version evidence. Product records are separate from automatic dependency matching.
openvm-org · GitHub_M
openvm
3 ranges
openvm-org · GitHub_M
openvm
Compare with this publisher’s ranges. This does not inspect your installation.
affected
< 1.7.0
>= 2.0.0-alpha, < 2.0.0-rc.3
>= 2.1.0-dev.0, < 2.1.0-preview
Other versions: unknown
Original source description
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.
Inside the record
Evidence available
Describes the evidence in this view, not whether the product is safe.
Original records
CVE-2026-62333View the latest unmodified CVE JSON from the official source. It may be newer than this imported page.
cve.new JSON →Underlying weaknesses
The source’s classification of what caused the vulnerability.
Contributing organizations · 1
Assigning organization
What changed
Follow changesLarge field values are marked as truncated previews. Original source snapshots remain retained.