CVE-2018-20406
WysokieCVSS 7.5Prawdopodobieństwo exploitacji (EPSS)
Bardzo wysokie ryzykoPercentyl 93 - wyżej niż 93% wszystkich znanych CVE
Streszczenie
Podatność w module _pickle.c w Pythonie przed wersją 3.7.1 polega na przepełnieniu liczby całkowitej przy dużej wartości LONG_BINPUT, błędnie obsługiwanej podczas próby podwojenia rozmiaru. Może to prowadzić do wyczerpania pamięci, ale tylko w przypadku serializacji dziesiątek lub setek gigabajtów danych w formacie pickle.
Ocena ryzyka
W praktyce ryzyko jest niskie i dotyczy wyłącznie aplikacji przetwarzających ekstremalnie duże ilości danych w formacie pickle. Może jednak doprowadzić do wyczerpania pamięci i odmowy usługi.
Rekomendacja
Należy zaktualizować Pythona do wersji 3.7.1 lub nowszej (lub odpowiedniej wersji z gałęzi 3.4, 3.5, 3.6). Zaleca się również unikanie deserializacji niezaufanych danych pickle oraz ograniczenie rozmiaru przetwarzanych danych.
Inne podatności w Python
Zobacz wszystkie- CVE-2013-7338Wysokie
Python w wersjach przed 3.3.4 RC1 umożliwia zdalnym atakującym wywołanie odmowy usługi poprzez wprowadzenie wartości rozmiaru pliku większej niż rozmiar pliku zip w funkcjach związanych z odczytem i ekstrakcją plików zip.
- CVE-2023-27043Średnie
Moduł email w Pythonie do wersji 3.11.3 błędnie parsuje adresy e-mail zawierające znaki specjalne. Nieprawidłowa część nagłówka RFC2822 jest identyfikowana jako wartość addr-spec.
- CVE-2026-1299Średnie
Moduł email w Pythonie, a konkretnie klasa BytesGenerator, nieprawidłowo cytuje znaki nowej linii w nagłówkach wiadomości podczas serializacji, co umożliwia wstrzyknięcie nagłówka. Problem dotyczy tylko użycia LiteralHeader, które nie respektuje składania nagłówków.
- CVE-2022-42919Wysokie
Podatność w Pythonie 3.9.x przed 3.9.16 i 3.10.x przed 3.10.9 na systemie Linux umożliwia lokalną eskalację uprawnień w niestandardowej konfiguracji. Biblioteka multiprocessing z metodą startową forkserver pozwala na deserializację pickle'ów od dowolnego użytkownika w tej samej sieci lokalnej maszyny.
- CVE-2023-24329Wysokie
Podatność w komponencie urllib.parse języka Python przed wersją 3.11.4 umożliwia atakującym ominięcie metod blokowania poprzez dostarczenie adresu URL rozpoczynającego się od znaków pustych.
- CVE-2020-10735Wysokie
W Pythonie znaleziono błąd. W algorytmach o kwadratowej złożoności czasowej używających niebinarnych baz, przy użyciu int("text"), system może potrzebować 50ms na sparsowanie int stringa z 100 000 cyfr i 5s dla 1 000 000 cyfr (float, decimal, int.from_bytes() i int() dla baz binarnych 2, 4, 8, 16 i 32 nie są dotknięte). Największe zagrożenie z tej podatności to dostępność systemu.
- CVE-2021-3737Wysokie
W Pythonie wykryto błąd w kodzie klienta HTTP, który przy nieprawidłowo obsłużonej odpowiedzi HTTP może spowodować zapętlenie skryptu klienta, zużywając czas procesora. Największe zagrożenie dotyczy dostępności systemu.
- CVE-2022-0391Wysokie
Błąd w module urllib.parse w Pythonie, polegający na braku sanityzacji danych wejściowych przez metodę urlparse, która pozwala na wstawianie znaków '\r' i '\n' w ścieżce URL. Umożliwia to atakującemu wprowadzenie spreparowanego URL-a, co może prowadzić do ataków typu injection. Problem dotyczy wersji Python przed 3.10.0b1, 3.9.5, 3.8.11, 3.7.11 i 3.6.14.
- CVE-2021-29921Krytyczne
W Pythonie przed wersją 3.9.5 biblioteka ipaddress nieprawidłowo obsługuje wiodące zera w oktetach adresu IP. W niektórych sytuacjach pozwala to atakującym obejść kontrolę dostępu opartą na adresach IP.
- CVE-2021-23336Średnie
Pakiety python/cpython w wersjach do 3.6.13, od 3.7.0 do 3.7.10, od 3.8.0 do 3.8.8 oraz od 3.9.0 do 3.9.2 są podatne na zatruwanie pamięci podręcznej sieci (Web Cache Poisoning) poprzez funkcje urllib.parse.parse_qsl i urllib.parse.parse_qs. Atakujący może wykorzystać technikę zwaną ukrywaniem parametrów, rozdzielając parametry zapytania średnikiem (;), co powoduje różnice w interpretacji żądania między serwerem proxy a serwerem.
Oryginalny opis (angielski, źródło NVD)
Modules/_pickle.c in Python before 3.7.1 has an integer overflow via a large LONG_BINPUT value that is mishandled during a "resize to twice the size" attempt. This issue might cause memory exhaustion, but is only relevant if the pickle format is used for serializing tens or hundreds of gigabytes of data. This issue is fixed in: v3.4.10, v3.4.10rc1; v3.5.10, v3.5.10rc1, v3.5.7, v3.5.7rc1, v3.5.8, v3.5.8rc1, v3.5.8rc2, v3.5.9; v3.6.10, v3.6.10rc1, v3.6.11, v3.6.11rc1, v3.6.12, v3.6.7, v3.6.7rc1, v3.6.7rc2, v3.6.8, v3.6.8rc1, v3.6.9, v3.6.9rc1; v3.7.1, v3.7.1rc1, v3.7.1rc2, v3.7.2, v3.7.2rc1, v3.7.3, v3.7.3rc1, v3.7.4, v3.7.4rc1, v3.7.4rc2, v3.7.5, v3.7.5rc1, v3.7.6, v3.7.6rc1, v3.7.7, v3.7.7rc1, v3.7.8, v3.7.8rc1, v3.7.9.
Dane podatności pochodzą z NVD (NIST) · CISA KEV · EPSS

