CVE-2026-62335
ŚrednieCVSS 6.9Prawdopodobieństwo exploitacji (EPSS)
Niskie ryzykoPercentyl 32 - wyżej niż 32% wszystkich znanych CVE
Streszczenie
OpenVM to wydajny i modułowy framework zkVM. W wersjach przed 1.7.0 w linii 1.x oraz w dotkniętych wersjach przedpremierowych 2.0 i 2.1 funkcja OpenVmHalo2Verifier.verify przyjmuje appExeCommit i appVmCommit jako wartości bytes32 bez sprawdzenia, czy któraś z nich jest mniejsza od modułu ciała skalarnego BN254. Mimo że długości wartości publicznych i danych dowodu są sprawdzane, wywołujący mogą podać niekanoniczne 256-bitowe kodowania większe lub równe temu modułowi na granicy wrappera Solidity. Aplikacje polegające na wrapperze mogą zatem akceptować niekanoniczne zobowiązania app executable i app VM, tworząc niejednoznaczność między dostarczonymi wartościami bajtowymi a elementami ciała używanymi przez weryfikator. Problem naprawiono w wersjach 1.7.0, 2.0.0-rc.3 i 2.1.0-preview.
Ocena ryzyka
Może prowadzić do akceptacji niekanonicznych zobowiązań i niejednoznaczności w weryfikacji, podważając zaufanie do wrappera weryfikatora.
Rekomendacja
Zaktualizuj OpenVM do wersji 1.7.0, 2.0.0-rc.3 lub 2.1.0-preview (lub nowszej).
Inne podatności w OpenVM
Zobacz wszystkie- CVE-2026-62334Wysokie
OpenVM przed wersją 1.7.0 (oraz w wersjach 2.0 i 2.1 prerelease) ma podatność w OpenVmHalo2Verifier.verify, gdzie surowe dane calldata z proofData mogą wywołać inną funkcję zewnętrzną zamiast weryfikatora, co pozwala zaakceptować dowolne zobowiązania aplikacji i wartości publiczne bez sprawdzenia dowodu.
- CVE-2026-62333Wysokie
OpenVM przed wersją 1.7.0 (oraz w wersjach 2.0 i 2.1 prerelease) ma podatność w MemoryMerkleAir, która nie zabrania wierszy rozszerzenia Merkle przy parent_height = 0 lub poniżej, gdy expand_direction != 0. Złośliwy prover może sfabrykować poddrzewo i zmienić zakorzeniony root pamięci bez odpowiedniej operacji pamięci, podważając poprawność dowodów OpenVM.
- CVE-2026-46669Wysokie
OpenVM przed wersją 1.6.0 zawiera podatność w bibliotece gościa openvm-pairing, gdzie funkcja try_honest_pairing_check nie sprawdza, czy współczynnik skalowania s znajduje się w odpowiednim podciele Fp12. Może to prowadzić do błędnych wyników sprawdzania parowania.
Oryginalny opis (angielski, źródło NVD)
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.
Dane podatności pochodzą z NVD (NIST) · CISA KEV · EPSS

