CVE-2023-36807
ŚrednieCVSS 6.2Prawdopodobieństwo exploitacji (EPSS)
Niskie ryzykoPercentyl 40 - wyżej niż 40% wszystkich znanych CVE
Streszczenie
Biblioteka pypdf w wersji 2.10.5 zawiera podatność, która pozwala atakującemu na stworzenie PDF-a prowadzącego do nieskończonej pętli. Pętla ta blokuje bieżący proces i wykorzystuje 100% jednego rdzenia CPU.
Ocena ryzyka
Organizacje mogą doświadczyć znacznych opóźnień w działaniu systemów, co może prowadzić do zakłóceń w pracy i obniżenia wydajności.
Rekomendacja
Zaleca się aktualizację do wersji 2.10.6, która naprawia tę podatność. Użytkownicy, którzy nie mogą zaktualizować, powinni zmodyfikować plik `PyPDF2/generic/_data_structures.py`, aby wprowadzić przypadek zgłaszania błędów.
Inne podatności w pypdf
Zobacz wszystkie- CVE-2026-84311Średnie
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-84310Średnie
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.
- CVE-2026-84309Średnie
pypdf to darmowa biblioteka PDF w czystym Pythonie. Przed wersją 6.16.0 atakujący może stworzyć plik PDF o cyklicznej strukturze drzewa, co powoduje, że funkcja TreeObject.insert_child w pypdf/generic/_data_structures.py podąża za linkami /Next w nieskończoność podczas zapisu, prowadząc do nieskończonej pętli. Problem naprawiono w wersji 6.16.0.
- CVE-2026-82398Średnie
pypdf przed wersją 6.15.0 ma podatność na długi czas działania, gdy funkcja read_until_whitespace w pypdf/_utils.py czyta strumień zawierający długi ciąg bajtów bez białych znaków. Funkcja wielokrotnie wykonuje niezmienne łączenie bajtów w pętli jeden-bajtowej, co powoduje kwadratowy koszt przetwarzania.
- CVE-2026-71870Średnie
pypdf przed wersją 6.15.0 jest podatny na nadmierne zużycie pamięci podczas przetwarzania specjalnie spreparowanych plików PDF, gdy funkcja parse_bfrange w pliku pypdf/_cmap.py parsuje niezwykle duże tokeny w mapie /ToUnicode CMap podczas ekstrakcji tekstu. Problem został naprawiony w wersji 6.15.0.
- CVE-2026-71852Średnie
Podatność w bibliotece pypdf przed wersją 6.15.0 pozwala na długotrwałe działanie i duże zużycie pamięci podczas ekstrakcji tekstu z odpowiednio spreparowanego pliku PDF. Funkcja Font._collect_cid_character_widths rozszerza niezwykle duże zakresy szerokości CID lub nadmierną liczbę wpisów szerokości. Problem został naprawiony w wersji 6.15.0.
- CVE-2026-59936Wysokie
W bibliotece pypdf przed wersją 6.14.1 wykryto podatność polegającą na nieskończonej pętli podczas przetwarzania obrazów wbudowanych w strumieniu treści strony PDF. Atakujący może stworzyć specjalnie spreparowany plik PDF z nieprawidłowo zakończonym obrazem wbudowanym, co prowadzi do zawieszenia procesu ekstrakcji tekstu.
- CVE-2026-59935Wysokie
Biblioteka pypdf przed wersją 6.14.2 zawiera podatność na atak DoS polegający na nieskończonej pętli podczas parsowania plików PDF. Atakujący może stworzyć specjalnie spreparowany dokument PDF z niezakończonym obrazem inline używającym filtrów ASCII85 lub ASCIIHex, co prowadzi do zawieszenia procesu.
- CVE-2026-59938Średnie
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.
- CVE-2026-59937Wysokie
W bibliotece pypdf przed wersją 6.14.0 wykryto podatność polegającą na możliwości stworzenia przez atakującego pliku PDF z wieloma uszkodzonymi strumieniami odnośników krzyżowych. Powoduje to długotrwałe odtwarzanie uszkodzonych wpisów tabeli odnośników, co prowadzi do nadmiernego obciążenia procesora i wydłużenia czasu przetwarzania.
Oryginalny opis (angielski, źródło NVD)
pypdf is a pure-python PDF library capable of splitting, merging, cropping, and transforming the pages of PDF files. In version 2.10.5 an attacker who uses this vulnerability can craft a PDF which leads to an infinite loop. This infinite loop blocks the current process and can utilize a single core of the CPU by 100%. It does not affect memory usage. That is, for example, the case if the user extracted metadata from such a malformed PDF. Versions prior to 2.10.5 throw an error, but do not hang forever. This issue was fixed with https://github.com/py-pdf/pypdf/pull/1331 which has been included in release 2.10.6. Users are advised to upgrade. Users unable to upgrade should modify `PyPDF2/generic/_data_structures.py::read_object` to an an error throwing case. See GHSA-hm9v-vj3r-r55m for details.
Dane podatności pochodzą z NVD (NIST) · CISA KEV · EPSS

