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.
https://github.com/openvm-org/openvm/security/advisories/GHSA-w82q-w67c-67wv
https://github.com/openvm-org/openvm/releases/tag/v2.1.0-preview
https://github.com/openvm-org/openvm/releases/tag/v2.0.0-rc.3
https://github.com/openvm-org/openvm/releases/tag/v1.7.0
https://github.com/openvm-org/openvm/pull/152
https://github.com/openvm-org/openvm/commit/1962276254aabc5420de266a8cb672433ce955ff
Published: 2026-10-30
Updated: 2026-10-30
Base Score: 5
Vector: CVSS2#AV:N/AC:L/Au:N/C:P/I:N/A:N
Severity: Medium
Base Score: 7.1
Vector: CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:L/I:H/A:N
Severity: High
Base Score: 6.9
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
Severity: Medium
EPSS: 0.00379