CVE-2026-112398
KrytyczneCVSS 9.2Streszczenie
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.
Ocena ryzyka
Dostarczenie spreparowanego pliku OLE2 FlashPix do aplikacji z zainstalowaną opcjonalną zależnością olefile może uszkodzić pamięć sterty i potencjalnie umożliwić wykonanie dowolnego kodu.
Rekomendacja
Zaktualizuj Pillow do wersji 13.0.0 lub nowszej.
Inne podatności w Pillow
Zobacz wszystkie- CVE-2026-112897Wysokie
W Pillow od wersji 5.3.0 do 13.0.0 biblioteka może zwracać niezainicjalizowaną pamięć jako piksele, gdy libtiff wykonuje niepełny dekodowanie danych TIFF skompresowanych JPEG lub Group 4 fax. Bufory _decodeStrip i _decodeTile mogą być większe niż dane zapisane przez libtiff, a Pillow nie zeruje nieużywanej końcówki. Atakujący może dostarczyć spreparowany plik TIFF aplikacji, która ładuje i zwraca lub ponownie koduje jego piksele.
- CVE-2026-112896Wysokie
W Pillow przed wersją 13.0.0 koder TIFF może odczytywać dane poza buforem ColorMap, gdy zachowane metadane TIFF mają rozmiar płaszczyzny niezgodny z BitsPerSample. Mały plik TIFF można otworzyć normalnie, a następnie zachowuje on spreparowany ColorMap używany ponownie przy zapisie obrazu. Aplikacja, która ponownie koduje taki TIFF z libtiff, może wywołać odczyt poza granicami bufora.
- CVE-2026-112895Wysokie
W Pillow od wersji 5.1.0 do 13.0.0 biblioteka może wyczerpać zasoby podczas parsowania istniejącego PDF przy operacji dopisywania. PdfParser podąża za referencjami drzewa stron bez wykrywania cykli i duplikacji oraz za łańcuchami poprzednich trailerów z jedynie dokładnym zabezpieczeniem powtórzonego offsetu, co może wyczerpać stos Pythona. Atakujący może dostarczyć taki PDF aplikacji wywołującej Image.save z włączonym dopisywaniem PDF.
- CVE-2026-112894Wysokie
W Pillow od wersji 5.1.0 do 13.0.0 rezerwacja identyfikatorów obiektów PDF przy zapisie wielu klatek z save_all zajmuje czas kwadratowy. PdfParser.next_object_id() wielokrotnie przebudowuje i skanuje wszystkie wcześniej zarezerwowane identyfikatory dla każdego obiektu. Atakujący może dostarczyć wieloklatkowy obraz, w tym mały APNG z dużą zadeklarowaną liczbą klatek, aplikacji konwertującej go do wielostronicowego PDF.
- CVE-2026-112893Wysokie
W Pillow od wersji 10.0.0 do 13.0.0 biblioteka może zwolnić nieprawidłowy wskaźnik glifu podczas renderowania FreeType z aktywnym strokerem. Jeśli FT_Load_Glyph zawiedzie, sprzątanie może wywołać FT_Done_Glyph na niezainicjalizowanej lub nieaktualnej zmiennej glifu. Atakujący może dostarczyć zniekształconą czcionkę jako niezaufane bajty aplikacji rysującej tekst z niezerową szerokością obrysu.
- CVE-2026-112892Wysokie
W Pillow od wersji 4.1.0 do 13.0.0 dekoder MSP RLE może rozwinąć mały plik do nieograniczonego bufora w pamięci. Dekoder zapisuje dane wyjściowe RLE do BytesIO bez ograniczania ekspansji do zadeklarowanego rozmiaru obrazu. Atakujący może dostarczyć spreparowany obraz MSP aplikacji ładującej jego piksele.
- CVE-2026-112406Wysokie
W Pillow od wersji 5.1.0 do 13.0.0 biblioteka może wejść w nieskończoną pętlę podczas przepisywania stron PDF. PdfParser.rewrite_pages() podąża za relacjami Parent bez wykrywania cyklu w drzewie stron. Atakujący może dostarczyć cykliczny PDF aplikacji dopisującej do niego obraz.
- CVE-2026-112405Wysokie
W Pillow od wersji 12.0.0 do 13.0.0 funkcja Image.merge() może odwoływać się do pustej płaszczyzny image8. Walidacja pomija pierwszy pas wejściowy, pozwalając na scalenie obrazu 32-bitowego całkowitego lub zmiennoprzecinkowego opartego na magazynie image32 jako węższego obrazu wielopasmowego. Spreparowany plik IPTC może osiągnąć tę ścieżkę, gdy aplikacja go otwiera i ładuje, lub wywołujący może bezpośrednio wywołać Image.merge() z takim pierwszym pasem.
- CVE-2026-112404Wysokie
W Pillow od wersji 8.1.0 do 13.0.0 ścieżki dekodowania kafelków TIFF i RGBA mogą odczytywać dane poza wierszem wyprodukowanym przez libtiff. W _decodeTile i ścieżce rozpakowywania RGBA, gdy Pillow i libtiff interpretują zduplikowane tagi PhotometricInterpretation lub BitsPerSample odmiennie, Pillow nie weryfikuje, czy wymagany wiersz wejściowy mieści się w wierszu wyprodukowanym przez libtiff (ścieżka pasków ma tę walidację). Ładowanie pikseli z takiego spreparowanego TIFF może ujawnić sąsiednie dane sterty w pikselach wyjściowych lub spowodować awarię procesu.
- CVE-2026-112402Wysokie
W bibliotece Pillow przed wersją 13.0.0 funkcja ImagingScaleAffine może spowodować podwójne zwolnienie pamięci obrazu, gdy wystąpi częściowa awaria alokacji. Dotyczy to szybkiej ścieżki dla operacji Transform.EXTENT lub czystego skalowania i przesunięcia Transform.AFFINE z domyślnym próbkowaniem NEAREST. Atakujący może wywołać awarię, powodując dużą operację Image.transform() przy niedoborze pamięci.
Oryginalny opis (angielski, źródło NVD)
Pillow is a Python imaging library. Prior to 13.0.0, Pillow's FlashPix JPEG-tile decoder can write decoded scanlines beyond the allocated tile buffer. FlashPix (FPX) JPEG decoding selects raw mode LA with two bytes per pixel, while an unrecognized JPEG mode can be decoded as JCS_UNKNOWN with four components, causing ImagingJpegDecode to write four-component scanlines into the two-byte tile buffer. An attacker can supply a crafted OLE2 FlashPix file to an application with the optional olefile dependency installed that opens or thumbnails untrusted input. This can corrupt heap memory and may allow arbitrary code execution. This issue is fixed in version 13.0.0.
Dane podatności pochodzą z NVD (NIST) · CISA KEV · EPSS

