Skip to main content

OpenVM CVE-2026-62334

| EUVDEUVD-2026-114441 HIGH
Improper Check for Unusual or Exceptional Conditions (CWE-754)
2026-10-30 security-advisories@github.com
8.7
CVSS 4.0 · Vendor: github
View

Attack ChainAIDerived

Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain

  1. Access
    Craft proofData with first 4 bytes matching an exposed selector
  2. Delivery
    Submit proof to generated OpenVmHalo2Verifier.verify
  3. Exploit
    Self staticcall dispatches to non-verifier function
  4. Execution
    Successful return treated as proof acceptance
  5. Impact
    Application accepts forged commitments and public values

Vulnerability Assessment

Weakness
CWE
OWASP Top 10:2025
A10:2025 - Mishandling of Exceptional Conditions
ASVS 5.0
V16 - Security Logging and Error Handling Unusual condition handling
Exploitation Conditions

Exploitation requires that the target application deployed the Solidity verifier wrapper generated by an affected OpenVM version (before 1.7.0 in 1.x, or affected 2.0/2.1 prereleases) and calls OpenVmHalo2Verifier.verify to gate trust. The concrete trigger is attacker control of the first four bytes of proofData so they match a non-verifier external selector exposed by the same wrapper contract (notably the extra public getter selector that the fix removes); in a correct proof those four bytes are part of the first KZG accumulator limb and must be zero. Limiting factors: the vulnerability is confined to deployments using the generated wrapper, and the fix neutralizes it both by removing the collidable getter selector and by adding a defensive check that the first four proof bytes are zero before the self-call. No authentication or user interaction is required per CVSS (PR:N/UI:N), but there is no impact on confidentiality or availability.

Impact

The CVSS 4.0 score of 8.7 (High) is driven by AV:N/AC:L/AT:N/PR:N/UI:N with VI:H and VC:N/VA:N - meaning a remote, unauthenticated attacker can forge proof acceptance with low complexity, impacting integrity only (no confidentiality or availability loss). This is consistent with the advisory: a malformed proof can bypass the Halo2 fallback verifier, letting the wrapper accept arbitrary app commitments and public values. The vuln.today Decision label is 'this_week', indicating meaningful but not emergency urgency. Key signals are MISSING: no EPSS score was provided, there is no CISA KEV listing, and no working exploit code is referenced (the GitHub links are the fix commit, PR #151, release tags, and the GHSA advisory - patch/advisory material, not a published exploit). The CVSS integrity-only profile directly CONTRADICTS the single input Tag 'Information Disclosure': with VC:N this is a proof-verification/integrity bypass, not a confidentiality issue - treat the tag as unreliable. Real-world priority is moderated by low deployment footprint (OpenVM is a niche zkVM framework) and by the precondition that the victim must have deployed the generated Solidity verifier wrapper on-chain; however, for any affected deployment the impact is severe because the entire zero-knowledge proof trust assumption is defeated.

Exploit ScenarioDerived

An attacker interacting with a smart-contract application that deployed the generated OpenVmHalo2Verifier wrapper crafts proofData whose first four bytes collide with another external selector exposed by the wrapper. Calling verify triggers a staticcall to address(this) that dispatches to the benign non-verifier function, which returns successfully, so the wrapper accepts a forged proof and arbitrary app commitments/public values without ever running the Halo2 verifier. No public working exploit is referenced, but the GHSA advisory describes the mechanism in enough detail to reconstruct it, and the attack is remote and unauthenticated (AV:N/PR:N/AC:L).

This Week Schedule remediation this week. Why: HIGH severity (CVSS 7.0-8.9).
Patch available 0.5% exploitation probability (EPSS)

Get an e-mail when this CVE is exploited, patched or re-scored. Free account.

Alert me

AnalysisAIv1 – Oct 30, 2026

Proof verification bypass in OpenVM's generated Solidity OpenVmHalo2Verifier allows remote, unauthenticated attackers to get malformed proof data treated as valid, so integrating applications can accept arbitrary app commitments and public values without the Halo2 proof suffix, accumulator, app commitments, or public values being checked. The issue affects OpenVM SDK users who deployed the generated wrapper from 1.x before 1.7.0 and from affected 2.0/2.1 prereleases, and is fixed in 1.7.0, 2.0.0-rc.3 and 2.1.0-preview. No public exploit is identified at time of analysis and no CISA KEV entry is present in the supplied data; the independent assessment rates integrity impact High with no confidentiality or availability impact.

RemediationAI

Upgrade OpenVM SDK to 1.7.0, 2.0.0-rc.3, or 2.1.0-preview as appropriate, then regenerate the Solidity wrapper and redeploy or migrate any contract that calls OpenVmHalo2Verifier.verify; because the vulnerable behavior is in deployed wrapper bytecode, upgrading the Rust dependency alone does not change an already deployed contract. The fixed wrapper removes the collidable public getter and checks that the first four proof bytes are zero before the self-call, so integrations must point to the newly generated verifier address. See GHSA-j29p-wr24-hp4f at https://github.com/openvm-org/openvm/security/advisories/GHSA-j29p-wr24-hp4f and the fixed release tags for details. No separate workaround beyond using the fixed wrapper is identified in the supplied sources.

Affected VersionsENISA

openvm 2.1.0-dev.0, < 2.1.0-preview
openvm 2.0.0-alpha, < 2.0.0-rc.3
openvm < 1.7.0

Affected Packages

euvd openvm fix: 1.7.0, 2.0.0-rc.3, 2.1.0-preview

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 SDK emits a Solidity Halo2 verifier wrapper. OpenVmHalo2Verifier.verify assembles raw calldata for the generated snark-verifier Halo2 fallback verifier and performs a staticcall to address(this), treating any successful call as proof acceptance. Because that calldata begins with user-controlled proofData, the first four bytes can match another external selector exposed by the same wrapper-specifically the extra public getter selector removed by the fix-causing EVM selector dispatch to invoke a successful non-verifier function instead of the Halo2 verifier. In a valid proof layout those first four bytes are part of the first KZG accumulator limb and must be zero. The fix removes the collidable getter selector and adds a defensive check that the first four proof bytes are zero before the self-call. CWE-754 (Improper Check for Unusual or Exceptional Conditions) corresponds to the failure to verify that the self-call actually reached the intended verifier and returned a meaningful result. The supplied tag says Information Disclosure, but the advisory and independent assessment describe an integrity-only proof-forgery impact, with no confidentiality or availability loss.

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

Vendor (github) PRIMARY 8.7 HIGH
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
vuln.today AI 7.5 HIGH

Remote unauthenticated call to verify with attacker-controlled proof bytes (AV:N/AC:L/PR:N/UI:N); forged proof acceptance is integrity-only (I:H), with no confidentiality or availability impact.

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

Primary rating from Vendor (github).

CVSS VectorVendor: github

Attack Vector
Network
Attack Complexity
Low
Attack Requirements
None
Privileges Required
None
User Interaction
None
Vulnerable system: Confidentiality
None
Vulnerable system: Integrity
High
Vulnerable system: Availability
None
Subsequent system: Confidentiality
None
Subsequent system: Integrity
None
Subsequent system: Availability
None

Lifecycle Timeline

2
Patch available
Oct 30, 2026 - 22:03 EUVD
CVE Published
Oct 30, 2026 - 20:17 cve.org
HIGH 8.7

DescriptionCVE.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, OpenVmHalo2Verifier.verify constructs raw proof calldata from user-controlled proofData, performs a staticcall to address(this), and treats a successful call as proof acceptance. If the first four proof bytes match another external selector exposed by the wrapper, dispatch can invoke a successful non-verifier function instead of the generated Halo2 fallback verifier. Applications using the generated Solidity wrapper can consequently accept arbitrary app commitments and public values without checking the proof suffix, accumulator, app commitments or public values. This issue is fixed in versions 1.7.0, 2.0.0-rc.3 and 2.1.0-preview.

Technical POC Analysis

CWE-754 (Improper Check for Unusual or Exceptional Conditions), per the CVE record; note the GHSA itself lists "No CWEs".

Full technical POC analysis - root cause, step-by-step exploitation and patch breakdown - is part of the Pro and Business plans.

Executive ViewAI

Why It Matters

A high-severity proof verification bypass in OpenVM's generated Solidity verifier (OpenVmHalo2Verifier) allows attackers to submit malformed proofs that are incorrectly accepted, undermining the integrity of any application relying on this component. Organizations using affected OpenVM SDK versions (1.x before 1.7.0 and 2.0/2.1 prereleases) may face unauthorized acceptance of false commitments or values, eroding trust in their zero-knowledge proof systems.

Business Impact: High
Compensating Controls

Apply vendor patch.

Threat Intelligence Overview

EPSS Score
0.5%
Top 55% exploitable
Prevalence
Low
niche zkVM framework; limited on-chain verifier-wrapper deployment footprint
Data Quality
6 sources
Confidence: High

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.

SignalValue
Severity HIGH
CISA KEV No
Public POC No
EPSS 0.5%
Patch available Yes
Active threat No
Deciding rule
HIGH severity (CVSS 7.0-8.9)
What every action level means
Emergency Immediate action required. Criteria: CRITICAL + in CISA KEV (actively exploited) without patch, OR CRITICAL + EPSS > 30% without patch, OR CRITICAL + active threat signals without patch.
Act Now Prioritize within 24-48h. Criteria: in KEV with patch available, OR CRITICAL + public POC, OR HIGH + EPSS > 10%, OR CRITICAL + active threat, OR any CRITICAL severity.
This Week Schedule remediation this week. Criteria: HIGH severity (CVSS 7.0-8.9). Patch within normal change window.
This Month Plan within 30 days. Criteria: MEDIUM severity (CVSS 4.0-6.9), lower exploitation probability. Include in regular patch cycle.
Monitor Track and reassess. Criteria: LOW severity (CVSS 0.1-3.9), minimal exploitation risk. No immediate action needed.

SSVC AssessmentENISA

SSVC Decision
Scheduled
Exploitation
None
System Exposure· derived
Open
Automatable
Yes
Human Impact
High
Technical Impact
Partial

Priority Score

45
Low Medium High Critical
KEV: 0
EPSS: +1
CVSS: +44
PoC: 0
Weaponized: 0
Threat intel: 0
Gov advisory: 0

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