Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessCraft proof element encoded as (0,0)
-
DeliverySubmit to Halo 2 aggregation circuit
-
ExploitScalar-one shortcut routes point to EccChip::sum
-
ExecutionIncomplete affine addition mishandles identity
-
ImpactCorrupt 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. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – 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
Affected Packages
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
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
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.
Primary rating from Vendor (github).
CVSS VectorVendor: github
Lifecycle Timeline
1DescriptionCVE.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
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.
What every action level means
SSVC AssessmentENISA
Priority Score
Attack Technique
Information disclosure occurs when an application unintentionally exposes sensitive data that aids attackers in reconnaissance or directly compromises security.
EUVD-2026-114436
NVD
CVE.org
EPSS
Vulnrichment
GitHub
Exploit-DB