CVE-2026-62333
WysokieCVSS 8.7Prawdopodobieństwo exploitacji (EPSS)
Niskie ryzykoPercentyl 34 - wyżej niż 34% wszystkich znanych CVE
Streszczenie
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.
Ocena ryzyka
Złośliwy prover może sfałszować dowody dotyczące stanu pamięci, co podważa zaufanie do 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-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-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, `MemoryMerkleAir` does not forbid Merkle expansion rows at `parent_height` = 0 or below while `expand_direction` != 0. A malicious prover can fabricate a subtree below a memory leaf and swap digests inside that subtree to change the committed memory root without a corresponding memory operation. The fraudulent rows still balance against the Merkle and compression buses and require no memory-bus operation for the changed leaf. Because the memory Merkle root binds VM memory state across continuation segment boundaries, this affects the soundness of OpenVM proofs using persistent memory. 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

