Skip to main content

snark-verifier EUVDEUVD-2026-114436

| CVE-2026-62337 MEDIUM
Improper Input Validation (CWE-20)
2026-10-30 security-advisories@github.com
6.9
CVSS 4.0 · Vendor: github
View

Attack ChainAIDerived

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

  1. Access
    Craft proof element encoded as (0,0)
  2. Delivery
    Submit to Halo 2 aggregation circuit
  3. Exploit
    Scalar-one shortcut routes point to EccChip::sum
  4. Execution
    Incomplete affine addition mishandles identity
  5. Impact
    Corrupt MSM/accumulator, risk invalid-proof acceptance

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 that the target build a recursive Halo 2 aggregation circuit using snark-verifier's Halo 2 loader with the default shim (which delegates sum_with_const to halo2-lib EccChip::sum) on an affected version (< 0.2.5), and that an attacker act as a prover able to submit a proof whose point is encoded as the identity (0, 0); such a point enters the MSM through the (Value::Constant(ONE), Value::Assigned(_)) scalar-one shortcut. Limiting factors that reduce real-world impact: per the NVD description and advisory, whether a mishandled identity element actually corrupts results or leads to acceptance of an invalid proof depends on the surrounding aggregation and final-decider checks, and the advisory does not establish universal acceptance of invalid proofs. Deployments not using this aggregation/loader path, or already on 0.2.5, are not affected.

Impact

This is a medium-severity soundness flaw in a cryptographic library, and the signals are consistent in pointing to a real-but-contained issue rather than an urgent emergency. The supplied CVSS 4.0 vector (AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:L/VA:N, score 6.9) indicates a network-reachable, low-complexity, unauthenticated path with integrity-only impact (VI:L) and no confidentiality or availability impact - appropriate for a prover-controlled correctness bug in proof aggregation. There is no CISA KEV listing and no EPSS score in the input, so exploitation status is: no public exploit identified at time of analysis (the only references are the fix commits, release tag, and GHSA advisory, not PoC or exploit code). The vuln.today decision label is 'this_month', which aligns with a scheduled-remediation posture rather than act_now/emergency. One clear conflict: the input Tag labels this 'Information Disclosure', but the CVSS vector sets VC:N and VI:L - this is an integrity/soundness issue (mishandling an identity proof element could affect MSM/accumulator computation), not a confidentiality disclosure; defenders should treat it as an integrity concern. Critically, both the NVD description and the GHSA advisory explicitly state that practical exploitability depends on the surrounding aggregation and final-decider checks and that the advisory does NOT establish universal acceptance of invalid proofs - so the worst-case outcome (accepting a forged aggregated proof) is plausible but unproven. Net: a legitimate patch priority for anyone running the affected aggregation path, but not a high-real-risk widespread emergency.

Exploit ScenarioDerived

A malicious prover crafts a proof containing an elliptic-curve point encoded as the identity (0, 0) and submits it to a recursive aggregation circuit that uses the Halo 2 loader in snark-verifier < 0.2.5. Because the scalar-one shortcut in EcPointLoader::multi_scalar_multiplication passes that assigned point directly into the halo2-lib EccChip::sum helper (which assumes non-identity inputs), the identity element can enter the final aggregation sum and affect the MSM or accumulator. No public exploit or PoC is identified; the advisory notes that whether this yields acceptance of an invalid proof depends on the surrounding aggregation and final-decider checks.

This Month Plan within 30 days. Why: MEDIUM severity (CVSS 4.0-6.9).
Patch available 0.3% exploitation probability (EPSS)

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

Alert me

AnalysisAIv1 – Oct 30, 2026

The Halo 2 aggregation loader in axiom-crypto's snark-verifier (versions prior to 0.2.5) can mishandle prover-supplied proof points that are encoded as the point at infinity, allowing an unauthenticated attacker acting as a prover to inject an identity element into the multi-scalar multiplication or accumulator computation through the scalar-one shortcut. The flaw is a soundness gap rather than a demonstrated forgery primitive: whether a mishandled identity element actually corrupts the aggregated result or causes an invalid proof to be accepted depends on the surrounding aggregation and final-decider checks, and the advisory does not establish universal acceptance of invalid proofs. Version 0.2.5 resolves the issue by moving to halo2-lib v0.5.3, where EccChip::sum treats encoded identity inputs as no-ops; no public exploit code has been identified at time of analysis, and the vendor rates the issue medium severity.

RemediationAI

Vendor-released patch: upgrade snark-verifier to 0.2.5 (https://github.com/axiom-crypto/snark-verifier/releases/tag/v0.2.5), which per commit bbfcc721 bumps halo2-base and halo2-ecc from tag v0.5.2 to v0.5.3, pulling in the halo2-lib fix (commit f53be093) that makes EccChip::sum ignore encoded identity inputs and return (0, 0) for an identity total. Where an immediate crate upgrade is not possible, the same commit shows the change can be applied at the halo2-lib dependency level: pin halo2-base/halo2-ecc to v0.5.3 and rebuild so the default shim's sum_with_const no longer relies on incomplete affine addition; the trade-off is a dependency bump that must be revalidated against the verifier's circuit parameters and any custom ECC chips implementing Selectable. A further compensating measure, consistent with the advisory's note that impact depends on surrounding checks, is to review and harden the final-decider logic in recursive Halo 2 aggregation circuits so that a mishandled identity element cannot be translated into acceptance of an invalid proof, and to avoid the (Value::Constant(ONE), Value::Assigned(_)) scalar-one shortcut path until the patch is in place; neither substitute restores the intended MSM semantics, so patching remains the complete fix. Assertions about which paths are reachable should be verified per deployment, since only the Halo 2 loader with the default shim on versions below 0.2.5 is confirmed affected.

Affected VersionsENISA

snark-verifier < 0.2.5

Affected Packages

euvd snark_verifier fix: 0.2.5

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

snark-verifier is a Rust crate providing generic (S)NARK verifiers, including a recursive Halo 2 aggregation circuit built on axiom-crypto's halo2-lib (halo2-base and halo2-ecc). EcPointLoader::multi_scalar_multiplication partitions MSM terms by scalar and base type; for the combination (Value::Constant(ONE), Value::Assigned(_)) it applies a scalar-one shortcut, placing the assigned base directly into the unscaled variable-base list and later forwarding those points to sum_with_const. The default Halo 2 shim delegates sum_with_const to halo2-lib's EccChip::sum, whose incomplete affine addition in affected versions assumed every input point was non-identity. Because assigned proof points can legitimately encode the identity as (0, 0), a prover-controlled point can reach the final aggregation sum through that shortcut. The root cause maps to CWE-20 (improper input validation) - a missing precondition check on an untrusted, circuit-assigned value rather than a memory-safety defect. The upstream fix in halo2-lib commit f53be093 adds a Selectable-based path that tests the y-coordinate for zero (is_zero), selects between the running accumulator and the addition result via ec_select, and returns (0, 0) when the total is the identity, using ec_sub_strict for the final randomization step; snark-verifier commit bbfcc721 pins halo2-base and halo2-ecc to v0.5.3 to consume that fix.

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 6.9 MEDIUM
CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:L/VA:N/SC:N/SI:N/SA:N
vuln.today AI 5.3 MEDIUM

A prover submits a crafted proof over the network with no auth or interaction (AV:N/AC:L/PR:N/UI:N); impact is integrity-only soundness, rated I:L because practical acceptance of invalid proofs is unproven, with no C or A impact.

3.1 AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:L/A:N
4.0 AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:L/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
Low
Vulnerable system: Availability
None
Subsequent system: Confidentiality
None
Subsequent system: Integrity
None
Subsequent system: Availability
None

Lifecycle Timeline

1
Patch available
Oct 30, 2026 - 22:03 EUVD

DescriptionCVE.org

SNARK Verifier is a generic (S)NARK verifier. Prior to 0.2.5, the Halo 2 aggregation circuit can mishandle proof points encoded as the point at infinity. EcPointLoader::multi_scalar_multiplication places a Value::Assigned(_) base paired with Value::Constant(ONE) into its unscaled variable-base list and passes it directly to sum_with_const. The default shim delegates to halo2-lib EccChip::sum, whose incomplete affine addition assumes nonidentity input points. A prover-controlled proof point encoded as (0, 0) can therefore enter the final aggregation sum through the scalar-one shortcut and affect the MSM or accumulator computation. Practical exploitability depends on the surrounding aggregation and final-decider checks; the advisory does not establish universal acceptance of invalid proofs. This issue is fixed in version 0.2.5.

Threat Intelligence Overview

EPSS Score
0.3%
Top 77% exploitable
Prevalence
Low
niche Rust zk-SNARK aggregation library, limited production deployment
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 MEDIUM
CISA KEV No
Public POC No
EPSS 0.3%
Patch available Yes
Active threat No
Deciding rule
MEDIUM severity (CVSS 4.0-6.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· derived
Scheduled
Exploitation
None
System Exposure· derived
Open
Automatable
Yes
Human Impact· derived
Medium
Technical Impact
Partial

Priority Score

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

Attack Technique

Information disclosure occurs when an application unintentionally exposes sensitive data that aids attackers in reconnaissance or directly compromises security.

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