CVE-2026-46669 Overview
CVE-2026-46669 affects OpenVM, a modular zero-knowledge virtual machine (zkVM) framework. The flaw resides in the openvm-pairing guest library's try_honest_pairing_check function. The function applies Theorem 3 from the cryptographic paper at eprint.iacr.org/2024/640 but omits a required validation that the scaling factor s belongs to a proper subfield of Fp12. Attackers can supply crafted inputs that pass the pairing check incorrectly, undermining the integrity guarantees of any application relying on this primitive. The issue was fixed in OpenVM version 1.6.0.
Critical Impact
Incorrect pairing check results can break the soundness of zero-knowledge proofs and signature verifications built on OpenVM, allowing forged proofs to be accepted as valid.
Affected Products
- OpenVM openvm-pairing guest library versions prior to 1.6.0
- zkVM applications consuming the affected pairing library
- Downstream projects integrating OpenVM pairing primitives before patch
Discovery Timeline
- 2026-06-10 - CVE-2026-46669 published to NVD
- 2026-06-10 - Last updated in NVD database
Technical Details for CVE-2026-46669
Vulnerability Analysis
The vulnerability is an input validation flaw [CWE-20] in cryptographic code. The try_honest_pairing_check function implements an optimization based on Theorem 3 of the referenced cryptographic paper. The theorem requires the scaling factor s to lie within a proper subfield of the extension field Fp12. Without this constraint, the optimized check no longer matches a true pairing equality. Attackers can therefore submit inputs that satisfy the relaxed check while failing the actual pairing relation. Applications that rely on the result for proof verification or signature validation accept invalid data as authentic.
Root Cause
The root cause is a missing precondition check. The implementation invokes the optimized pairing identity without verifying that s is constrained to the proper Fp12 subfield required by the underlying theorem. The mathematical assumption supporting soundness is therefore unenforced at runtime.
Attack Vector
An attacker who controls inputs to a verifier using the vulnerable try_honest_pairing_check function can craft an s value outside the required subfield. The crafted input causes the function to return success for inputs that do not satisfy a valid pairing equation. In a zkVM context, this allows acceptance of forged proofs, breaking soundness for any protocol depending on this primitive. See the GitHub Security Advisory GHSA-76mq-v757-53gr for the full technical writeup.
Detection Methods for CVE-2026-46669
Indicators of Compromise
- Verifier acceptance of proofs that fail an independent re-verification using a standards-compliant pairing implementation
- Application logs showing successful pairing checks tied to anomalous or unexpected scaling factor values
- Presence of OpenVM dependency versions earlier than 1.6.0 in build manifests such as Cargo.toml or Cargo.lock
Detection Strategies
- Inventory all builds and deployments using openvm-pairing and flag any version below 1.6.0
- Cross-validate proof verification results against an independent pairing library to detect inconsistent outcomes
- Review code paths that call try_honest_pairing_check and confirm whether subfield validation is performed externally
Monitoring Recommendations
- Continuously scan source repositories and container images for vulnerable OpenVM versions
- Alert on verifier endpoints returning success rates or proof patterns that deviate from historical baselines
- Track the OpenVM release notes and security advisory feeds for follow-up fixes
How to Mitigate CVE-2026-46669
Immediate Actions Required
- Upgrade openvm-pairing and the broader OpenVM stack to version 1.6.0 or later
- Rebuild and redeploy any zkVM guest programs, provers, and verifiers compiled against vulnerable versions
- Audit recent on-chain or off-chain proof acceptances for signs of forged proofs while the system was unpatched
Patch Information
The issue is fixed in OpenVM version 1.6.0. The patched try_honest_pairing_check enforces that the scaling factor s lies within a proper subfield of Fp12 before applying Theorem 3. Release details are available in the OpenVM v1.6.0 release notes and the GHSA-76mq-v757-53gr advisory.
Workarounds
- If immediate upgrade is not feasible, replace calls to try_honest_pairing_check with a full pairing equality check that does not depend on the Theorem 3 optimization
- Add explicit validation that any externally supplied scaling factor s resides in the required Fp12 subfield before invoking the function
- Restrict verifier access to trusted inputs only until the patched release is deployed
# Update OpenVM dependency to the patched release
cargo update -p openvm-pairing --precise 1.6.0
cargo build --release
Disclaimer: This content was generated using AI. While we strive for accuracy, please verify critical information with official sources.

