CVE-2026-108106
WysokieCVSS 7.5Streszczenie
Xerial snappy-java przed wersją 1.1.10.9 zawiera podatność nieograniczonej alokacji pamięci, która pozwala atakującym wyczerpać pamięć JVM poprzez zadeklarowanie dużej długości nieskompresowanych danych w skompresowanym wejściu. Atakujący może dostarczyć kilka spreparowanych bajtów do Snappy.uncompress, uncompressString, SnappyInputStream lub SnappyFramedInputStream, aby wymusić alokacje do 2 GB, powodując OutOfMemoryError i odmowę usługi.
Ocena ryzyka
Atakujący może zdalnie wywołać wyczerpanie pamięci JVM, prowadząc do awarii aplikacji i odmowy usługi. Stanowi to poważne zagrożenie dla dostępności systemów.
Rekomendacja
Zaktualizuj snappy-java do wersji 1.1.10.9 lub nowszej. Ogranicz rozmiar przetwarzanych danych wejściowych i monitoruj zużycie pamięci.
Inne podatności w snappy-java
Zobacz wszystkie- CVE-2026-108104Średnie
Biblioteka Xerial snappy-java od wersji 1.1.7.4 do 1.1.10.10 zawiera podatność podwójnego zwolnienia w SnappyFramedInputStream, która zwraca bufory z puli dwukrotnie, gdy alokacja zastępcza zawiedzie. Atakujący mogą dostarczyć dane ramkowe z dużym zadeklarowanym rozmiarem fragmentu, aby wywołać OutOfMemoryError, powodując współdzielone tablice, które ujawniają lub nadpisują zdekompresowane dane innych strumieni.
- CVE-2026-93452Wysokie
snappy-java do wersji 1.1.10.8 zawiera podatność na przepełnienie bufora w funkcji Snappy.compress(ByteBuffer, ByteBuffer), która zapisuje poza koniec bufora docelowego. Atakujący mogą dostarczyć niekompresowalne dane przekraczające pozostałą pojemność bufora docelowego, co powoduje uszkodzenie pamięci poza stertą i zakończenie działania JVM.
- CVE-2026-93451Średnie
snappy-java do wersji 1.1.10.8 zawiera podatność przepełnienia bufora w metodach Snappy.uncompress*Array, które alokują tablice wyjściowe, dzieląc nieskompresowaną długość przez rozmiar elementu, ale przekazują niepodzieloną długość do kodu natywnego. Atakujący kontrolujący skompresowane dane wejściowe mogą spowodować zapis poza granicami tablicy, uszkadzając pamięć sterty.
- CVE-2026-90559Wysokie
snappy-java w wersjach do 1.1.10.8 zawiera podatność zapisu poza granicami w metodzie Snappy.uncompress(ByteBuffer, ByteBuffer), ponieważ pojemność bufora docelowego nie jest walidowana względem rozmiaru zdekompresowanych danych. Atakujący może dostarczyć prawidłowe skompresowane dane, które dekompresują się do większego rozmiaru niż bufor docelowy, powodując zapisy poza granicami bufora i zakończenie pracy JVM.
- CVE-2023-34455Wysokie
W bibliotece snappy-java występuje błąd związany z niekontrolowaną długością fragmentu, który może prowadzić do krytycznego błędu w wersjach przed 1.1.10.1. Funkcja hasNextChunk nie sprawdza poprawności zmiennej chunkSize, co może skutkować wyjątkiem NegativeArraySizeException lub OutOfMemoryError.
- CVE-2023-34454Średnie
W bibliotece snappy-java występuje problem z niekontrolowanymi mnożeniami, co może prowadzić do przepełnienia całkowitego w wersjach przed 1.1.10.1. Funkcja `compress(char[] input)` nie sprawdza długości tablicy, co może skutkować błędami krytycznymi.
- CVE-2023-34453Średnie
W bibliotece snappy-java występuje podatność związana z niekontrolowanymi mnożeniami, co może prowadzić do przepełnienia całkowitego w wersjach przed 1.1.10.1. Funkcja `shuffle(int[] input)` może spowodować krytyczny błąd, gdy długość tablicy nie jest odpowiednio sprawdzana.
Oryginalny opis (angielski, źródło NVD)
Xerial snappy-java before 1.1.10.9 contains an unbounded memory allocation vulnerability that allows attackers to exhaust JVM memory by declaring a large uncompressed length in compressed input. Attackers can supply a few crafted bytes to Snappy.uncompress, uncompressString, SnappyInputStream or SnappyFramedInputStream to force allocations up to 2 GB, causing OutOfMemoryError and denial of service.
Dane podatności pochodzą z NVD (NIST) · CISA KEV · EPSS

