CVE-2026-59938
ŚrednieCVSS 5.3Prawdopodobieństwo exploitacji (EPSS)
Niskie ryzykoPercentyl 22 - wyżej niż 22% wszystkich znanych CVE
Streszczenie
W bibliotece pypdf przed wersją 6.14.0 wykryto podatność polegającą na możliwości stworzenia pliku PDF z zawyżonymi deklarowanymi rozmiarami obrazów, co prowadzi do nadmiernego zużycia pamięci podczas parsowania obrazów. Atakujący może wykorzystać ten błąd do wywołania ataku typu odmowa usługi (DoS) poprzez przeciążenie pamięci.
Ocena ryzyka
Organizacja narażona jest na ryzyko wyczerpania zasobów pamięci serwera lub aplikacji przetwarzającej pliki PDF, co może prowadzić do przerwania działania usługi (DoS) i potencjalnych strat finansowych lub operacyjnych.
Rekomendacja
Należy niezwłocznie zaktualizować bibliotekę pypdf do wersji 6.14.0 lub nowszej, która zawiera poprawkę eliminującą tę podatność. W przypadku braku możliwości aktualizacji, zaleca się ograniczenie przetwarzania niezaufanych plików PDF.
Inne podatności w pypdf
Zobacz wszystkie- CVE-2026-103000Wysokie
pypdf to darmowa biblioteka PDF w czystym Pythonie. Przed wersją 6.19.0 spreparowany plik PDF może zawierać nietypowo duże wartości etykiet stron alfabetycznych, powodując generowanie ciągów znaków przekraczających rozsądną długość etykiety strony w pypdf/_page_labels.py, gdy aplikacja pobiera etykiety stron dokumentu, zużywając nadmierną pamięć i potencjalnie czyniąc aplikację niedostępną. Problem został naprawiony w wersji 6.19.0.
- CVE-2026-102999Wysokie
pypdf to darmowa biblioteka PDF w czystym Pythonie. Przed wersją 6.19.0 spreparowany plik PDF zawierający wiele osadzonych plików może powodować, że słownikowe API załączników w pypdf/_doc_common.py ponownie przetwarza pełną listę załączników przy każdym wyszukiwaniu zawartości, generując powtarzalną pracę i długie czasy działania, gdy aplikacja uzyskuje dostęp do mapowania osadzonych plików. Problem został naprawiony w wersji 6.19.0.
- CVE-2026-102998Wysokie
pypdf to darmowa biblioteka PDF w czystym Pythonie. Przed wersją 6.19.0 spreparowany plik PDF z wartościami pól formularza może powodować, że generowanie strumienia wyglądu w pypdf/generic/_appearance_stream.py powtarza niezmienną pracę związaną z danymi wyboru w pętli, gdy aplikacja aktualizuje pola z włączonym spłaszczaniem, co skutkuje nadmiernymi czasami działania i niedostępnością aplikacji. Problem został naprawiony w wersji 6.19.0.
- CVE-2026-102997Wysokie
pypdf to darmowa biblioteka PDF w czystym Pythonie. Przed wersją 6.18.1 spreparowany plik PDF zawierający częściowo uszkodzony strumień /FlateDecode z danymi wypełniającymi może wymusić na pypdf/filters.py nieefektywną dekompresję bajt po bajcie, podczas gdy wcześniejszy licznik odzyskiwania nie przesuwa się dla bajtów, które pomyślnie się zdekodowały, powodując długie czasy działania i niedostępność aplikacji. Jest to problem resztkowy po poprawce odzyskiwania uszkodzonego FlateDecode. Problem został naprawiony w wersji 6.18.1.
- CVE-2026-102996Wysokie
pypdf to darmowa biblioteka PDF w czystym Pythonie. Przed wersją 6.18.1 spreparowany plik PDF może zawierać prostą czcionkę TrueType lub Type1 z nietypowo dużą tablicą /Widths, powodując, że pypdf/_font.py Font._collect_tt_t1_character_widths przetwarza wpisy poza 256 kodami znaków istotnymi dla prostej czcionki i zużywa nadmierną pamięć podczas operacji takich jak ekstrakcja tekstu. Problem został naprawiony w wersji 6.18.1.
- CVE-2026-102995Wysokie
pypdf to darmowa biblioteka PDF w czystym Pythonie. Przed wersją 6.18.1, specjalnie spreparowany plik PDF może umieścić niezwykle duże tokeny w mapowaniu /ToUnicode czcionki, powodując, że funkcja parse_bfchar w pypdf/_cmap.py dekoduje i przechowuje zbyt duże wartości podczas operacji takich jak ekstrakcja tekstu, co prowadzi do nadmiernego zużycia pamięci. Jest to drugie uzupełnienie wcześniejszych poprawek dotyczących zużycia zasobów /ToUnicode i ogranicza się do pozostałej ścieżki długości tokenu. Problem został naprawiony w wersji 6.18.1.
- CVE-2026-102994Wysokie
pypdf to darmowa i otwartoźródłowa biblioteka PDF w czystym Pythonie. W wersjach przed 6.18.0 spreparowany plik PDF zawierający identyfikatory obiektów pośrednich lub tokeny numeru generacji, które ciągną się długo bez białych znaków, może spowodować, że pypdf/_reader.py i pypdf/generic/_base.py będą skanować nadmierne dane wejściowe przez read_until_whitespace, co prowadzi do długiego czasu działania i niedostępności aplikacji. Problem został naprawiony w wersji 6.18.0.
- CVE-2026-102993Wysokie
pypdf to darmowa i otwartoźródłowa biblioteka PDF w czystym Pythonie. W wersjach przed 6.17.0 spreparowany plik PDF może zawierać nietypowo duże wartości rzymskich etykiet stron, które powodują, że pypdf/_page_labels.py generuje nadmiernie duże ciągi liczbowe, gdy aplikacja pobiera etykiety stron dokumentu, zużywając duże ilości pamięci i potencjalnie czyniąc aplikację niedostępną. Problem został naprawiony w wersji 6.17.0.
- CVE-2026-84311Niskie
W pypdf (biblioteka PDF w Pythonie) przed wersją 6.16.1, atakujący może stworzyć plik PDF, który powoduje, że PageObject._extract_text i PageObject.extract_xform_text przechodzą przez skierowany graf acykliczny ponownie użytych form XObject, w którym każda forma wywołuje dziecko wielokrotnie, tworząc wykładniczo wiele ścieżek przejścia i powodując długie czasy działania oraz duże zużycie pamięci. Problem naprawiono w wersji 6.16.1.
- CVE-2026-84310Niskie
W pypdf (biblioteka PDF w Pythonie) przed wersją 6.16.1, atakujący może stworzyć plik PDF, który powoduje, że _get_outline w _doc_common.py zużywa długie czasy działania i duże ilości pamięci podczas pobierania konspektów dokumentów z dużą liczbą wpisów lub głęboko zagnieżdżonymi ponownie używanymi ścieżkami, ponieważ przejście nie miało globalnych limitów liczby wpisów i głębokości zagnieżdżenia. Problem naprawiono w wersji 6.16.1.
Oryginalny opis (angielski, źródło NVD)
pypdf is a free and open-source pure-python PDF library. Prior to 6.14.0, an attacker can craft a PDF with declared image size values that are much too large compared to the actual data, causing large memory usage in pypdf image parsing. This issue is fixed in version 6.14.0.
Dane podatności pochodzą z NVD (NIST) · CISA KEV · EPSS

