CVE-2026-114501
ŚrednieCVSS 6.3Prawdopodobieństwo exploitacji (EPSS)
Niskie ryzykoPercentyl 31 - wyżej niż 31% wszystkich znanych CVE
Streszczenie
Biblioteka Pillow w wersjach od 11.2.1 do 13.0.0 błędnie zakłada, że wiersze obrazu są ściśle przyległe podczas eksportu do formatu Arrow. Gdy PILLOW_ALIGNMENT powoduje dodanie paddingu wierszy lub przesunięcia przed pierwszym wierszem, bufor Arrow może zawierać niezainicjalizowany padding, bajty sprzed pierwszego wiersza lub pozostałości po zwolnionych obrazach. Może to prowadzić do ujawnienia pikseli innego użytkownika lub pamięci procesu.
Ocena ryzyka
Aplikacje konfigurujące wyrównanie i eksportujące obrazy do Arrow mogą ujawnić dane jednego użytkownika innemu użytkownikowi lub wyciec zawartość pamięci procesu. Stanowi to ryzyko naruszenia poufności danych.
Rekomendacja
Zaktualizuj bibliotekę Pillow do wersji 13.0.0 lub nowszej. Do czasu aktualizacji unikaj konfiguracji PILLOW_ALIGNMENT w połączeniu z eksportem do Arrow.
Inne podatności w Pillow
Zobacz wszystkie- 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.
- CVE-2026-96778Wysokie
Pillow to biblioteka obrazowania w Pythonie. Od wersji 9.4.0 do 13.0.0 funkcja ImagingJpegEncode() w src/libImaging/JpegEncode.c może wywołać jpeg_write_marker() dla komentarza JPEG COM, gdy profil ICC dokładnie wypełnił 65536-bajtowy bufor enkodera. libjpeg zapisuje jeden bajt przed sprawdzeniem wyczerpanego licznika free_in_buffer, który następnie się zawija i pozwala kontrolowanemu przez atakującego komentarzowi oraz kolejnym skompresowanym danym obrazu nadpisać sąsiednią pamięć sterty. Ponowne zapisanie niezaufanego obrazu jako JPEG z zachowaniem profilu ICC i przekazanego komentarza może spowodować awarię procesu i potencjalnie umożliwić wykonanie kodu w odpowiednich warunkach środowiska uruchomieniowego i układu sterty. Problem naprawiono w wersji 13.0.0.
- CVE-2026-96644Wysokie
Pillow to biblioteka obrazów dla Pythona. W wersjach przed 13.0.0 w systemie Windows plik src/PIL/WmfImagePlugin.py przekazuje niekontrolowane 32-bitowe wymiary WMF lub EMF do natywnego handlera drawwmf, który alokuje bufor DIB na podstawie obciętych do 16 bitów wymiarów, ale kopiuje dane pikseli przy użyciu pełnych wymiarów, umożliwiając odczyt poza buforem sterty.
- CVE-2026-96643Wysokie
W bibliotece Pillow od wersji 11.0.0 do 13.0.0 funkcja Exif.load() w src/PIL/Image.py wielokrotnie wycina pozostałe dane EXIF, dopóki zaczynają się one od sześciobajtowego nagłówka Exif. Ponieważ src/PIL/PngImagePlugin.py akceptuje nieograniczony chunk eXIf w PNG, plik wypełniony powtarzającymi się nagłówkami powoduje tworzenie nowej zmniejszającej się kopii w każdej iteracji i kwadratowe zużycie CPU. Problem jest osiągalny przez Image.getexif(), Image._getexif() i ImageOps.exif_transpose(), w tym w typowych procesach obracania zdjęć przy uploadzie. Podatność naprawiono w wersji 13.0.0.
Oryginalny opis (angielski, źródło NVD)
Pillow is a Python imaging library. From 11.2.1 until 13.0.0, Arrow export assumes that an image's rows are tightly contiguous and exports from im->blocks[0].ptr even when PILLOW_ALIGNMENT makes aligned_linesize include row padding or an aligned offset before the first row. The resulting Arrow buffer can include uninitialized padding, bytes preceding the first row, or stale heap contents from previously freed images. Applications that configure alignment and export images to Arrow can therefore disclose one user's pixels or other process memory to another user. This issue is fixed in version 13.0.0.
Dane podatności pochodzą z NVD (NIST) · CISA KEV · EPSS

