CVE-2026-106449
NiskieCVSS 3.7Streszczenie
yawkat LZ4 Java zapewnia kompresję LZ4 dla Javy. Przed wersją 1.11.4 net.jpountz.lz4.LZ4BlockInputStream skonfigurowany z stopOnEmptyBlock ustawionym na false obsługuje każdy poprawnie sformułowany pusty LZ4Block poprzez rekurencyjne wywołanie refill(), co pozwala długiej sekwencji pustych bloków w kontrolowanym przez atakującego strumieniu skompresowanym wyczerpać stos wątku dekodującego i zgłosić StackOverflowError. Domyślne ustawienie stopOnEmptyBlock to true i nie jest dotknięte, a problem nie powoduje uszkodzenia pamięci.
Ocena ryzyka
Atakujący może wywołać StackOverflowError, powodując odmowę usługi dla wątku dekodującego. Ryzyko dotyczy aplikacji używających LZ4BlockInputStream z stopOnEmptyBlock ustawionym na false.
Rekomendacja
Zaktualizuj yawkat LZ4 Java do wersji 1.11.4 lub nowszej. Upewnij się, że stopOnEmptyBlock ma wartość true (domyślnie).
Inne podatności w yawkat LZ4 Java
Zobacz wszystkie- CVE-2026-106453Średnie
W yawkat LZ4 Java przed wersją 1.11.2 klasa LZ4DecompressorWithLength ufa czterobajtowemu nagłówkowi długości przed walidacją danych wejściowych, co pozwala pięciobajtowemu wejściu zadeklarować duży rozmiar wyjściowy i wyczerpać stertę JVM. Przeciążenia zapisujące do bufora dostarczonego przez wywołującego nie są podatne.
- CVE-2026-106452Średnie
W yawkat LZ4 Java przed wersją 1.11.2 klasa LZ4BlockInputStream.refill() waliduje pole compressedLen w nagłówku LZ4Block jako nieujemne, ale przydziela bufor wejściowy o rozmiarze kontrolowanym przez atakującego przed odczytaniem danych. Strumień zawierający tylko nagłówek może zażądać alokacji bliskiej 2 GiB i wyczerpać stertę JVM.
- CVE-2026-106451Wysokie
Biblioteka yawkat LZ4 Java w wersjach od 1.7.0 do 1.11.4 zawiera podatność polegającą na niebezpiecznym tworzeniu pliku tymczasowego. Atakujący z dostępem do wspólnego katalogu tymczasowego może podmienić plik biblioteki natywnej przed jej załadowaniem, co może prowadzić do wykonania kodu w kontekście ofiary.
- CVE-2026-106450Średnie
W yawkat LZ4 Java przed wersją 1.11.4 klasa LZ4FrameInputStream.readHeader() przydziela dwa bufory bloków po 4 MiB przy odczycie nagłówka ramki o maksymalnym rozmiarze bloku. Tryb domyślny pozwala atakującemu na strumienie z wieloma pustymi ramkami, powodując alokację około 8 MiB na każde 11 bajtów wejścia, bez generowania danych wyjściowych.
- CVE-2026-59949Średnie
W bibliotece yawkat LZ4 Java przed wersją 1.11.1 funkcje haszujące XXHash oparte na JNI nie sprawdzają poprawności tablicy bajtów oraz argumentów off i len, co pozwala na przekazanie pustych tablic lub zbyt dużych zakresów do kodu natywnego. Może to prowadzić do odczytu poza tablicą Java i awaryjnego zakończenia działania JVM. Problem został naprawiony w wersji 1.11.1.
Oryginalny opis (angielski, źródło NVD)
yawkat LZ4 Java provides LZ4 compression for Java. Prior to 1.11.4, net.jpountz.lz4.LZ4BlockInputStream configured with stopOnEmptyBlock set to false handles each well-formed empty LZ4Block by recursively calling refill(), allowing a long sequence of empty blocks in an attacker-controlled compressed stream to exhaust the decoding thread's stack and throw StackOverflowError. The default stopOnEmptyBlock setting is true and is not affected, and the issue does not cause memory corruption. This issue is fixed in version 1.11.4.
Dane podatności pochodzą z NVD (NIST) · CISA KEV · EPSS

