CVE-2026-96641
ŚrednieCVSS 6.5Prawdopodobieństwo exploitacji (EPSS)
Niskie ryzykoPercentyl 28 - wyżej niż 28% wszystkich znanych CVE
Streszczenie
Pillow, biblioteka obrazowania w Pythonie, w wersjach przed 13.0.0 zawiera błąd w akumulacji szerokości tekstu PILfont w src/_imaging.c, gdzie dodatnie przesunięcia glifów są sprawdzane względem INT_MAX, ale ujemne przesunięcia nie są sprawdzane względem INT_MIN. Powtarzanie 16-bitowego przesunięcia -32768 może wywołać przepełnienie całkowite ze znakiem w xsize += dx, tworząc dużą dodatnią szerokość z ujemnego wyniku matematycznego, co może prowadzić do błędów logicznych lub zużycia zasobów w aplikacjach używających getlength(), getsize() lub obliczeń układu, limitów, serializacji lub alokacji.
Ocena ryzyka
Aplikacje przetwarzające niezaufane obrazy lub dane tekstowe mogą doświadczyć błędów integralności logicznej lub nadmiernego zużycia zasobów, co może prowadzić do odmowy usługi lub nieprawidłowego działania. Wysokopoziomowa ścieżka maski zwykle zachowuje kontrolę bomb dekompresyjnych, ale inne ścieżki mogą być podatne.
Rekomendacja
Zaktualizuj Pillow do wersji 13.0.0 lub nowszej. Unikaj przetwarzania niezaufanych obrazów PILfont bez dodatkowych ograniczeń zasobów.
Inne podatności w Pillow
Zobacz wszystkie- GHSA-78g4-xqwv-q3g8Wysokie
Koła (wheels) Pillow od wersji 11.1.0 zawierają dołączoną bibliotekę libopenjp2 z błędem przepełnienia bufora sterty (zapis), który został naprawiony w gałęzi master OpenJPEG, ale nigdy nie ukazał się w wydaniu OpenJPEG. Ponieważ koło dołącza własną kopię, załatany host nie chroni przed problemem.
- CVE-2026-112902Wysokie
W koderze libtiff w Pillow (funkcja PyImaging_LibTiffEncoderNew w src/encode.c) spreparowane znaczniki TIFF mogą powodować ujawnienie zawartości pamięci oraz błąd segmentacji. Problem występuje podczas tworzenia kodera LibTiff.
- CVE-2026-112899Średnie
Pillow (PIL) w EpsImagePlugin.py w funkcji Ghostscript() pozwala Ghostscript renderować poza limitem bomby dekompresyjnej podczas ładowania EPS ze skalowaniem. Może to prowadzić do nadmiernego zużycia zasobów.
- CVE-2026-96639Krytyczne
Biblioteka Pillow w wersjach od 11.0.0 do 13.0.0 ma błąd w obsłudze wieloklatkowych obrazów (PSD, MPO, DCX, MIC). Przy zmianie trybu klatki na szerszy (RGB/CMYK) ponownie używany jest stary bufor o węższym trybie, co prowadzi do zapisu poza granicami pamięci i awarii, a w niektórych przypadkach do wykonania kodu.
- CVE-2026-112900Krytyczne
Pillow (biblioteka obrazów Pythona) w wersjach od 2.6.0 do 13.0.0 jest podatna na wstrzyknięcie argumentów podczas wywoływania Ghostscript dla plików EPS. EpsImagePlugin.Ghostscript przekazuje nazwę pliku kontrolowaną przez wywołującego po -f bez konwersji na bezpieczną ścieżkę absolutną, więc nazwa zaczynająca się od myślnika może być interpretowana jako opcja Ghostscript.
- CVE-2026-112403Krytyczne
Pillow przed wersją 13.0.0 ma lukę w dekoderze JPEG, który może zapisać pełną linię skanowania do bufora o rozmiarze dostosowanym do żądanego skalowania. ImagingJpegDecode nie weryfikuje rzeczywistej szerokości wyjściowej libjpeg po skalowaniu, a 8-bitowy bezstratny JPEG SOF3 dekodowany przez libjpeg-turbo 3.x może zignorować żądaną geometrię zmniejszania.
- CVE-2026-112398Krytyczne
Pillow przed wersją 13.0.0 ma lukę w dekoderze kafelków JPEG FlashPix, który może zapisywać zdekodowane linie skanowania poza przydzielonym buforem kafelka. Dekodowanie FlashPix (FPX) JPEG wybiera tryb raw LA z dwoma bajtami na piksel, podczas gdy nierozpoznany tryb JPEG może być zdekodowany jako JCS_UNKNOWN z czterema komponentami, powodując zapis czterokomponentowych linii do dwubajtowego bufora kafelka.
- CVE-2026-112393Krytyczne
Biblioteka Pillow zawiera przepełnienie bufora na stercie oraz ujawnienie danych ze sterty w funkcji _tiffWriteProc podczas zapisu skompresowanych plików TIFF przez libtiff do celu bez użytecznego fileno(), np. BytesIO. Callback rozmiaruje alokację na podstawie poprzedniego rozmiaru bufora zamiast bieżącej pozycji zapisu, co pozwala na kopiowanie danych poza alokację. Podatność naprawiono w wersji 13.0.0.
- CVE-2026-54058Krytyczne
Podatność w bibliotece Pillow przed wersją 12.3.0 pozwala atakującemu na odczyt pamięci procesu lub wywołanie błędu krytycznego podczas ładowania nieskompresowanego obrazu McIdas AREA przez ścieżkę mmap. Kontrolowane przez atakującego nagłówki obrazu mogą ustawić mniejszy krok wiersza niż naturalna szerokość, co prowadzi do odczytu poza mapowanym regionem.
- CVE-2016-4009Krytyczne
Przepełnienie całkowite w funkcji ImagingResampleHorizontal w bibliotece Pillow przed wersją 3.1.1 umożliwia zdalnym atakującym wywołanie nieokreślonego wpływu poprzez użycie ujemnych wartości nowego rozmiaru, co prowadzi do przepełnienia bufora w pamięci sterty.
Oryginalny opis (angielski, źródło NVD)
Pillow is a Python imaging library. Prior to 13.0.0, PILfont text-width accumulation in src/_imaging.c checks positive glyph advances against INT_MAX but does not check negative advances against INT_MIN. Repeating a signed 16-bit advance of -32768 can therefore execute a signed C integer overflow in xsize += dx, producing a large positive width from a negative mathematical result. Applications that use getlength(), getsize(), or derived layout, quota, serialization, or allocation calculations can experience logic-integrity errors or resource consumption, while the high-level mask path commonly retains a decompression-bomb check. This issue is fixed in version 13.0.0.
Dane podatności pochodzą z NVD (NIST) · CISA KEV · EPSS

