CVE-2023-36464
ŚrednieCVSS 6.2Prawdopodobieństwo exploitacji (EPSS)
Niskie ryzykoPercentyl 29 - wyżej niż 29% wszystkich znanych CVE
Streszczenie
Biblioteka pypdf, będąca otwartym źródłem w czystym Pythonie, zawiera podatność, która może prowadzić do nieskończonej pętli podczas przetwarzania złośliwego pliku PDF. Problem ten występuje w wersjach, w których wykonano metodę `__parse_content_stream`.
Ocena ryzyka
Atakujący może wykorzystać tę podatność do zablokowania aplikacji przetwarzającej PDF, co może prowadzić do utraty dostępności usług. Organizacje powinny być świadome ryzyka związanego z przetwarzaniem nieznanych plików PDF.
Rekomendacja
Zaleca się aktualizację biblioteki pypdf do najnowszej wersji, aby usunąć tę podatność. Użytkownicy, którzy nie mogą zaktualizować, powinni wprowadzić zmiany w kodzie, aby zminimalizować ryzyko.
Inne podatności w pypdf
Zobacz wszystkie- CVE-2026-119209Średnie
pypdf przed wersją 6.21.3 może zużywać nadmierną pamięć podczas otwierania spreparowanego pliku PDF zawierającego strumienie cross-reference deklarujące bardzo duże liczby wpisów. Wysoce kompresowalne strumienie i łańcuchy /Prev mogą zwielokrotnić liczbę parsowanych wpisów, a ujemne wartości /Index omijają istniejące ograniczenie.
- CVE-2026-119208Średnie
pypdf przed wersją 6.21.3 może zużywać nadmierny czas i pamięć, gdy aplikacja odczytuje liczbę stron spreparowanego zaszyfrowanego pliku PDF, którego drzewo stron deklaruje sfałszowaną wartość /Count. Nawet po odszyfrowaniu liczba stron jest brana z niezweryfikowanej deklaracji zamiast z przejścia drzewa stron.
- CVE-2026-119207Średnie
pypdf przed wersją 6.21.3 może zużywać nadmierną pamięć, gdy tryb strict ładuje spreparowany nieprawidłowy słownik PDF. Zagnieżdżone błędy parsowania dodają powtarzający się tekst wyjątków do nowych błędów, przez co mały złośliwy słownik może rozrosnąć się do bardzo dużych komunikatów.
- CVE-2026-119206Średnie
pypdf przed wersją 6.21.3 może potrzebować nadmiernego czasu na pobranie etykiet stron ze spreparowanego pliku PDF zawierającego płaskie drzewo numerów etykiet z wieloma zakresami. Właściwość page_labels przetwarza każdą stronę niezależnie i wielokrotnie skanuje tę samą tablicę /Nums od początku.
- CVE-2026-119205Średnie
pypdf przed wersją 6.21.4 może wejść w nieskończoną pętlę podczas klonowania lub duplikowania spreparowanego cyklicznego DictionaryObject. Przejście klonowania sprawdzało wygenerowane referencje docelowe zamiast oryginalnych referencji źródłowych, co pozwalało niektórym cyklom źródłowym ominąć kontrolę odwiedzonych obiektów.
- CVE-2026-119204Średnie
pypdf przed wersją 6.21.4 może zużywać nadmierną pamięć podczas parsowania spreparowanego drzewa stron PDF zawierającego wiele współdzielonych zasobów. Spłaszczanie drzewa stron kopiuje wpisy słownika stron i dziedziczonych zasobów bez ogólnego limitu wpisów, co powoduje nieproporcjonalne alokacje.
- CVE-2026-119203Średnie
Biblioteka pypdf przed wersją 6.21.4 może wejść w nieskończoną pętlę podczas otwierania spreparowanego, niekompletnego pliku PDF, którego tablica referencji krzyżowych sięga końca pliku bez sekcji trailer. Wyszukiwanie trailera może wielokrotnie przewijać do tej samej pozycji strumienia zamiast zakończyć się, blokując wątek przetwarzający.
- CVE-2026-115585Wysokie
W bibliotece pypdf przed wersją 6.21.2 niekompletne rozwiązanie problemu powtarzających się błędnych wpisów w tablicy referencji krzyżowych (GHSA-55h5-xmcq-c37v) mogło nadal powodować pełne przeładowanie strumienia PDF przy każdej próbie odzyskiwania, nawet gdy dostępny był cache odzyskiwania, co prowadziło do długiego czasu działania przy spreparowanych strumieniach referencji krzyżowych. Problem naprawiono w wersji 6.21.2.
- CVE-2026-115580Wysokie
W bibliotece pypdf przed wersją 6.21.2 atakujący może spreparować plik PDF ze standardową tablicą referencji krzyżowych, której zadeklarowana liczba wpisów przekracza to, co plik może zawierać, powodując nadmierne przetwarzanie i długi czas działania przy otwieraniu pliku. Problem naprawiono w wersji 6.21.2.
- CVE-2026-115572Wysokie
Biblioteka pypdf przed wersją 6.21.2 jest podatna na atak, w którym spreparowany plik PDF wielokrotnie odwołuje się do tego samego nieistniejącego obiektu pośredniego. Powoduje to powtarzające się pełne odzyskiwanie pliku i długi czas działania przy dostępie do takich elementów jak strony. Problem naprawiono w wersji 6.21.2.
Oryginalny opis (angielski, źródło NVD)
pypdf is an open source, pure-python PDF library. In affected versions an attacker may craft a PDF which leads to an infinite loop if `__parse_content_stream` is executed. That is, for example, the case if the user extracted text from such a PDF. This issue was introduced in pull request #969 and resolved in pull request #1828. Users are advised to upgrade. Users unable to upgrade may modify the line `while peek not in (b"\r", b"\n")` in `pypdf/generic/_data_structures.py` to `while peek not in (b"\r", b"\n", b"")`.
Dane podatności pochodzą z NVD (NIST) · CISA KEV · EPSS

