CVE-2026-87825
WysokieCVSS 7.7Streszczenie
zstd-jni przed wersją 1.5.7-14 zawiera podatność use-after-free, gdzie strumienie i konteksty trzymają współdzielony zamek słownika tylko podczas wywołania ładowania, co pozwala na zamknięcie słownika, gdy jest nadal używany. Atakujący mogą zamknąć słownik po powiązaniu go ze strumieniem lub kontekstem, powodując, że kolejne operacje odczytu lub zapisu uzyskują dostęp do zwolnionej pamięci natywnej, co prowadzi do cichego uszkodzenia danych lub awarii JVM.
Ocena ryzyka
Podatność może prowadzić do uszkodzenia danych lub awarii JVM, co może wpłynąć na integralność i dostępność aplikacji.
Rekomendacja
Zaleca się aktualizację zstd-jni do wersji 1.5.7-14 lub nowszej, która naprawia problem z zarządzaniem cyklem życia słownika.
Inne podatności w zstd-jni
Zobacz wszystkie- CVE-2026-87877Wysokie
zstd-jni przed wersją 1.5.7-14 nie sprawdza stanu zamknięcia w metodach setDict, setLongMax, setLevel i setRefMultipleDDicts klas strumieni. Atakujący mogą wywołać te metody na zamkniętych strumieniach, aby zapisywać przez zwolnione wskaźniki natywne, uszkadzając niezwiązane obiekty lub powodując awarię JVM.
- CVE-2026-87824Wysokie
zstd-jni przed wersją 1.5.7-14 nie sprawdza pojemności bufora próbek w metodzie Zstd.trainFromBufferDirect, co pozwala atakującym na odczyt poza granicami bufora poprzez podanie zbyt dużych długości poszczególnych próbek. Atakujący mogą wywołać dostęp do pamięci poza zakresem, dostarczając spreparowane tablice długości próbek, które powodują, że natywna implementacja wychodzi poza alokację bufora, co prowadzi do zakończenia działania JVM.
- CVE-2026-87823Wysokie
zstd-jni przed wersją 1.5.7-14 wykonuje 32-bitowe sprawdzenia granic ze znakiem na trzech natywnych metodach dotyczących rozmiaru ramki dla bezpośrednich buforów ByteBuffer, co pozwala na odczyt pamięci poza zakresem poprzez ujemne lub przepełnione offsety. Atakujący mogą podać ujemne wartości offsetów bliskie Integer.MIN_VALUE, aby odczytać nieodwzorowaną pamięć, powodując zakończenie działania JVM lub wyodrębniając dane o rozmiarze ramki z nieprzewidzianych lokalizacji pamięci.
- CVE-2026-87795Wysokie
Wersje zstd-jni przed 1.5.7-14 nie walidują parametrów offset i length w konstruktorze ZstdDictCompress, co umożliwia odczyty pamięci poza zakresem. Atakujący może dostarczyć niezaufane wartości offset lub length, aby odczytać natywną pamięć sterty do słownika kompresji, co zwykle powoduje awarie JVM.
Oryginalny opis (angielski, źródło NVD)
zstd-jni before 1.5.7-14 contains a use-after-free vulnerability where streams and contexts hold a dictionary's shared lock only during the load call, allowing the dictionary to be closed while still referenced. Attackers can close a dictionary after associating it with a stream or context, causing subsequent read or write operations to access freed native memory, resulting in silent data corruption or JVM crashes.

