{"id":"CVE-2026-62335","state":"PUBLISHED","title":"OpenVM's OpenVmHalo2Verifier accepts non-canonical app commitments","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` accepts `appExeCommit` and `appVmCommit` as `bytes32` values without checking that either is less than the `BN254` scalar field modulus. Although public-value and proof-data lengths are checked, callers can provide non-canonical 256-bit encodings greater than or equal to that modulus at the Solidity wrapper boundary. Applications relying on the wrapper can therefore accept non-canonical app executable and app VM commitments, creating ambiguity between the supplied byte-level values and the field elements used by the verifier. This issue is fixed in versions 1.7.0, 2.0.0-rc.3 and 2.1.0-preview.","publishedAt":"2026-10-30T20:03:14.543Z","updatedAt":"2026-10-30T20:03:14.543Z","severity":{"score":6.9,"label":"Medium","version":"4.0","vector":"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","source":"GitHub_M"},"assigner":"GitHub_M","products":["openvm-org openvm"],"affected":[{"vendor":"openvm-org","product":"openvm","versions":[{"version":"< 1.7.0","status":"affected"},{"version":">= 2.0.0-alpha, < 2.0.0-rc.3","status":"affected"},{"version":">= 2.1.0-dev.0, < 2.1.0-preview","status":"affected"}]}],"references":["https://github.com/openvm-org/openvm/security/advisories/GHSA-w82q-w67c-67wv","https://github.com/openvm-org/openvm/pull/152","https://github.com/openvm-org/openvm/commit/1962276254aabc5420de266a8cb672433ce955ff","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"],"weaknesses":["CWE-20"],"ingestedAt":"2026-10-30T20:14:06.645Z","source":{"repository":"CVEProject/cvelistV5","path":"cves/2026/62xxx/CVE-2026-62335.json","commit":"d7f5c3fe206091a44e450f13bfe51dc81b8a7843","baselineCommit":"556c9d3a8cd17e218bb8e452ba7cd619a384ff47"},"raw":{"dataType":"CVE_RECORD","dataVersion":"5.2","cveMetadata":{"cveId":"CVE-2026-62335","state":"PUBLISHED","datePublished":"2026-10-30T20:03:14.543Z","dateUpdated":"2026-10-30T20:03:14.543Z","assignerShortName":"GitHub_M","assignerOrgId":"a0819718-46f1-4df5-94e2-005712e83aaa","dateReserved":"2026-07-13T21:42:50.094Z"},"containers":{"cna":{"title":"OpenVM's OpenVmHalo2Verifier accepts non-canonical app commitments","descriptions":[{"lang":"en","value":"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` accepts `appExeCommit` and `appVmCommit` as `bytes32` values without checking that either is less than the `BN254` scalar field modulus. Although public-value and proof-data lengths are checked, callers can provide non-canonical 256-bit encodings greater than or equal to that modulus at the Solidity wrapper boundary. Applications relying on the wrapper can therefore accept non-canonical app executable and app VM commitments, creating ambiguity between the supplied byte-level values and the field elements used by the verifier. This issue is fixed in versions 1.7.0, 2.0.0-rc.3 and 2.1.0-preview."}],"affected":[{"vendor":"openvm-org","product":"openvm","versions":[{"version":"< 1.7.0","status":"affected"},{"version":">= 2.0.0-alpha, < 2.0.0-rc.3","status":"affected"},{"version":">= 2.1.0-dev.0, < 2.1.0-preview","status":"affected"}]}],"references":[{"url":"https://github.com/openvm-org/openvm/security/advisories/GHSA-w82q-w67c-67wv","name":"https://github.com/openvm-org/openvm/security/advisories/GHSA-w82q-w67c-67wv","tags":["x_refsource_CONFIRM"]},{"url":"https://github.com/openvm-org/openvm/pull/152","name":"https://github.com/openvm-org/openvm/pull/152","tags":["x_refsource_MISC"]},{"url":"https://github.com/openvm-org/openvm/commit/1962276254aabc5420de266a8cb672433ce955ff","name":"https://github.com/openvm-org/openvm/commit/1962276254aabc5420de266a8cb672433ce955ff","tags":["x_refsource_MISC"]},{"url":"https://github.com/openvm-org/openvm/blob/v2.0.0-alpha/crates/sdk/contracts/template/OpenVmHalo2Verifier.sol","name":"https://github.com/openvm-org/openvm/blob/v2.0.0-alpha/crates/sdk/contracts/template/OpenVmHalo2Verifier.sol","tags":["x_refsource_MISC"]},{"url":"https://github.com/openvm-org/openvm/blob/v2.0.0-beta.2/crates/sdk/contracts/template/OpenVmHalo2Verifier.sol","name":"https://github.com/openvm-org/openvm/blob/v2.0.0-beta.2/crates/sdk/contracts/template/OpenVmHalo2Verifier.sol","tags":["x_refsource_MISC"]},{"url":"https://github.com/openvm-org/openvm/blob/v2.1.0-dev.0/crates/sdk/contracts/template/OpenVmHalo2Verifier.sol","name":"https://github.com/openvm-org/openvm/blob/v2.1.0-dev.0/crates/sdk/contracts/template/OpenVmHalo2Verifier.sol","tags":["x_refsource_MISC"]},{"url":"https://github.com/openvm-org/openvm/releases/tag/v1.7.0","name":"https://github.com/openvm-org/openvm/releases/tag/v1.7.0","tags":["x_refsource_MISC"]},{"url":"https://github.com/openvm-org/openvm/releases/tag/v2.0.0-rc.3","name":"https://github.com/openvm-org/openvm/releases/tag/v2.0.0-rc.3","tags":["x_refsource_MISC"]},{"url":"https://github.com/openvm-org/openvm/releases/tag/v2.1.0-preview","name":"https://github.com/openvm-org/openvm/releases/tag/v2.1.0-preview","tags":["x_refsource_MISC"]}],"metrics":[{"cvssV4_0":{"attackVector":"NETWORK","attackComplexity":"LOW","attackRequirements":"NONE","privilegesRequired":"NONE","userInteraction":"NONE","vulnConfidentialityImpact":"NONE","vulnIntegrityImpact":"LOW","vulnAvailabilityImpact":"NONE","subConfidentialityImpact":"NONE","subIntegrityImpact":"NONE","subAvailabilityImpact":"NONE","baseScore":6.9,"baseSeverity":"MEDIUM","vectorString":"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","version":"4.0"}}],"problemTypes":[{"descriptions":[{"cweId":"CWE-20","lang":"en","description":"CWE-20: Improper Input Validation","type":"CWE"}]}],"providerMetadata":{"shortName":"GitHub_M","orgId":"a0819718-46f1-4df5-94e2-005712e83aaa","dateUpdated":"2026-10-30T20:03:14.543Z"},"source":{"advisory":"GHSA-w82q-w67c-67wv","discovery":"UNKNOWN"}}}}}