CVE-2026-62334
WysokieCVSS 8.7Prawdopodobieństwo exploitacji (EPSS)
Niskie ryzykoPercentyl 45 - wyżej niż 45% wszystkich znanych CVE
Streszczenie
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.
Ocena ryzyka
Aplikacje korzystające z wygenerowanego wrappera Solidity mogą akceptować nieprawidłowe dowody, podważając bezpieczeństwo systemu zkVM.
Rekomendacja
Zaktualizuj OpenVM do wersji 1.7.0, 2.0.0-rc.3 lub 2.1.0-preview.
Inne podatności w OpenVM
Zobacz wszystkie- CVE-2026-62335Średnie
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.
- 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` constructs raw proof calldata from user-controlled `proofData`, performs a `staticcall` to `address(this)`, and treats a successful call as proof acceptance. If the first four proof bytes match another external selector exposed by the wrapper, dispatch can invoke a successful non-verifier function instead of the generated Halo2 fallback verifier. Applications using the generated Solidity wrapper can consequently accept arbitrary app commitments and public values without checking the proof suffix, accumulator, app commitments or public values. 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

