CVE-2023-34453
ŚrednieCVSS 5.9Prawdopodobieństwo exploitacji (EPSS)
Podwyższone ryzykoPercentyl 74 - wyżej niż 74% wszystkich znanych CVE
Streszczenie
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.
Ocena ryzyka
Podatność ta może prowadzić do awarii aplikacji, co zagraża stabilności systemów korzystających z tej biblioteki. W przypadku wystąpienia błędów, takich jak `java.lang.ArrayIndexOutOfBoundsException`, może dojść do nieprzewidzianych zachowań aplikacji.
Rekomendacja
Zaleca się aktualizację do wersji 1.1.10.1, która zawiera poprawkę eliminującą tę podatność. Należy również przeprowadzić testy aplikacji po aktualizacji, aby upewnić się, że nie występują nowe problemy.
Inne podatności w snappy-java
Zobacz wszystkie- 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.
Oryginalny opis (angielski, źródło NVD)
snappy-java is a fast compressor/decompressor for Java. Due to unchecked multiplications, an integer overflow may occur in versions prior to 1.1.10.1, causing a fatal error. The function `shuffle(int[] input)` in the file `BitShuffle.java` receives an array of integers and applies a bit shuffle on it. It does so by multiplying the length by 4 and passing it to the natively compiled shuffle function. Since the length is not tested, the multiplication by four can cause an integer overflow and become a smaller value than the true size, or even zero or negative. In the case of a negative value, a `java.lang.NegativeArraySizeException` exception will raise, which can crash the program. In a case of a value that is zero or too small, the code that afterwards references the shuffled array will assume a bigger size of the array, which might cause exceptions such as `java.lang.ArrayIndexOutOfBoundsException`. The same issue exists also when using the `shuffle` functions that receive a double, float, long and short, each using a different multiplier that may cause the same issue. Version 1.1.10.1 contains a patch for this vulnerability.
Dane podatności pochodzą z NVD (NIST) · CISA KEV · EPSS

