Podatności Python
54 znanych podatności CVE w Python, przetłumaczonych i ocenionych.
- 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-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-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-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.
- CVE-2021-3177Krytyczne
Python 3.x do wersji 3.9.1 zawiera przepełnienie bufora w funkcji PyCArg_repr w _ctypes/callproc.c, co może prowadzić do zdalnego wykonania kodu w niektórych aplikacjach Pythona, które akceptują liczby zmiennoprzecinkowe jako niezaufane dane wejściowe, na przykład argument 1e300 do c_double.from_param. Problem wynika z niebezpiecznego użycia funkcji sprintf.
- CVE-2020-27619Krytyczne
W Pythonie w wersjach od 3 do 3.9.0 testy kodeków CJK w pliku Lib/test/multibytecodec_support.py wywołują funkcję eval() na treści pobranej przez HTTP. Może to prowadzić do wykonania dowolnego kodu, jeśli treść zostanie spreparowana.
- CVE-2020-26116Wysokie
http.client w Pythonie 3.x przed 3.5.10, 3.6.x przed 3.6.12, 3.7.x przed 3.7.9 i 3.8.x przed 3.8.5 pozwala na wstrzyknięcie CRLF, jeśli atakujący kontroluje metodę żądania HTTP, np. poprzez wstawienie znaków CR i LF w pierwszym argumencie HTTPConnection.request.
- CVE-2020-15801Krytyczne
W Pythonie 3.8.4 ograniczenia sys.path określone w pliku python38._pth są ignorowane, co pozwala na ładowanie kodu z dowolnych lokalizacji. Plik <executable-name>._pth (np. python._pth) nie jest objęty tym problemem.
- CVE-2020-14422Średnie
Lib/ipaddress.py w Pythonie do wersji 3.8.3 niepoprawnie oblicza wartości hasz w klasach IPv4Interface i IPv6Interface, co może umożliwić zdalnemu atakującemu spowodowanie odmowy usługi, jeśli aplikacja jest wrażliwa na wydajność słownika zawierającego obiekty IPv4Interface lub IPv6Interface i atakujący może spowodować utworzenie wielu wpisów w słowniku. Naprawione w wielu wersjach Pythona.
- CVE-2019-9674Wysokie
Moduł Lib/zipfile.py w Pythonie do wersji 3.7.2 pozwala zdalnym atakującym na wywołanie odmowy usługi (wyczerpanie zasobów) poprzez tzw. bombę ZIP. Złośliwie spreparowany plik ZIP może prowadzić do nadmiernego zużycia pamięci lub czasu procesora.
- CVE-2020-8492Średnie
Python w wersjach 2.7 do 2.7.17, 3.5 do 3.5.9, 3.6 do 3.6.10, 3.7 do 3.7.6 oraz 3.8 do 3.8.1 pozwala serwerowi HTTP na przeprowadzenie ataków Regular Expression Denial of Service (ReDoS) przeciwko klientowi z powodu katastrofalnego cofania w urllib.request.AbstractBasicAuthHandler.
- CVE-2019-5010Wysokie
Podatność w parserze certyfikatów X509 w Pythonie 2.7.11 i 3.6.6 umożliwia odmowę usługi poprzez specjalnie spreparowany certyfikat X509, który powoduje wyłuskanie pustego wskaźnika (NULL pointer dereference).
- CVE-2019-16056Wysokie
W Pythonie do wersji 2.7.16, 3.x do 3.5.7, 3.6.x do 3.6.9 i 3.7.x do 3.7.4 odkryto problem. Moduł email błędnie parsuje adresy email zawierające wiele znaków @. Aplikacja używająca modułu email i implementująca pewne kontrole nagłówków From/To wiadomości może zostać oszukana, aby zaakceptować adres email, który powinien być odrzucony. Atak może być taki sam jak w CVE-2019-11340; jednak to CVE dotyczy Pythona bardziej ogólnie.
- CVE-2019-10160Krytyczne
Wykryto regresję bezpieczeństwa CVE-2019-9636 w Pythonie od commit d537ab0ff9767ef024f26246899728f0116b1ec3, dotyczącą wersji 2.7, 3.5, 3.6, 3.7 oraz od v3.8.0a4 do v3.8.0b1. Atakujący może nadal wykorzystać CVE-2019-9636, nadużywając części user i password w URL-u. Gdy aplikacja parsuje URL-e dostarczone przez użytkownika, aby przechowywać ciasteczka, poświadczenia lub inne informacje, możliwe jest, że atakujący poda specjalnie spreparowane URL-e, które spowodują wysłanie informacji związanych z hostem do innego hosta, niż powinny.
- CVE-2019-9948Krytyczne
urllib w Python 2.x do 2.7.16 obsługuje schemat local_file:, co ułatwia zdalnym atakującym obejście mechanizmów ochronnych blokujących URI file:, na przykład przez wywołanie urllib.urlopen('local_file:///etc/passwd').
- CVE-2019-9636Krytyczne
Python 2.7.x do 2.7.16 i 3.x do 3.7.2 ma problem z nieprawidłową obsługą kodowania Unicode (z nieprawidłowym netloc) podczas normalizacji NFKC. Skutkiem jest ujawnienie informacji (poświadczenia, ciasteczka itp.) przechowywanych dla danego hosta. Komponenty: urllib.parse.urlsplit, urllib.parse.urlparse. Atak polega na specjalnie spreparowanym URL-u, który może być błędnie sparsowany, co powoduje wysłanie danych do innego hosta.
- CVE-2018-20406Wysokie
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.
- CVE-2018-14647Wysokie
Akcelerator C elementtree w Pythonie nie zainicjował soli haszującej Expat podczas inicjalizacji. To może ułatwić przeprowadzenie ataków typu denial of service przeciwko Expat poprzez skonstruowanie dokumentu XML, który powoduje patologiczne kolizje haszujące w wewnętrznych strukturach danych Expat, zużywając duże ilości CPU i RAM. Podatność istnieje w wersjach Pythona 3.7.0, 3.6.0 do 3.6.6, 3.5.0 do 3.5.6, 3.4.0 do 3.4.9, 2.7.0 do 2.7.15.
- CVE-2018-1000802Krytyczne
Python (CPython) w wersji 2.7 zawiera podatność na wstrzykiwanie poleceń (CWE-77) w module shutil (funkcja make_archive), która może prowadzić do odmowy usługi, uzyskania informacji lub wstrzyknięcia dowolnych plików na system lub cały dysk. Atak jest możliwy przez przekazanie niefiltrowanych danych użytkownika do funkcji.
- CVE-2018-1061Średnie
Python w wersjach przed 2.7.15, 3.4.9, 3.5.6rc1, 3.6.5rc1 i 3.7.0 jest podatny na katastrofalne cofanie (catastrophic backtracking) w metodzie difflib.IS_LINE_JUNK. Atakujący może wykorzystać tę wadę do wywołania odmowy usługi (DoS).
- CVE-2018-1060Wysokie
Python w wersjach przed 2.7.15, 3.4.9, 3.5.6rc1, 3.6.5rc1 i 3.7.0 jest podatny na katastroficzne cofanie się (catastrophic backtracking) w metodzie apop() biblioteki pop3lib. Atakujący może wykorzystać tę wadę do wywołania odmowy usługi.
- CVE-2026-116566Średnie
Funkcja socket.getaddrinfo() akceptowała bajty null w parametrach *host* i *port*, co mogło powodować ciche obcięcie tych wartości. Może to prowadzić do niezamierzonego rozwiązywania nazw lub łączenia się z innym adresem niż zamierzony.
- CVE-2026-85864Wysokie
Niewłaściwe zarządzanie uprawnieniami w Pythonie umożliwia autoryzowanemu atakującemu lokalne podniesienie uprawnień.
- CVE-2026-15310Niskie
Podczas dekompresji spreparowanych plików zip przy użyciu kompresji bzip/LZMA/Zstandard, Python może użyć kontrolowanego przez atakującego rozmiaru do wstępnego przydzielenia pamięci, co może prowadzić do wyczerpania pamięci.
- CVE-2026-17084Średnie
Moduł 'stringprep' w Pythonie nie przetwarzał poprawnie znaków z tabel B.2 i B.3 standardu RFC 3454, używając najnowszych atrybutów Unicode zamiast określonej wersji Unicode 3.2.0. Powoduje to niezgodności podczas przetwarzania nazw domen z użyciem IDNA 2003 (kodowanie 'idna') oraz funkcji in_table_b2() modułu 'stringprep'. Problem dotyczy nazw domen zawierających znaki, które nie były wcześniej zarejestrowane lub których atrybuty Unicode, takie jak składanie wielkich liter, zostały zaktualizowane po Unicode 3.2.0.
- CVE-2026-18503Niskie
Podatność w Pythonie (csv.Sniffer) polegająca na nadmiernym zużyciu CPU podczas przetwarzania próbek CSV kontrolowanych przez atakującego. Wykrywanie dialektu może powodować super-liniową pracę wyrażeń regularnych.
- CVE-2026-15308Wysokie
Parser HTML (html.parser.HTMLParser) w trybie przyrostowym pozwala na atak DoS na procesor poprzez wielokrotne niezakończone deklaracje znaczników podczas przetwarzania niesterowanych danych.
- CVE-2026-12003Średnie
Podatność CVE-2026-12003 dotyczy sposobu, w jaki Python obsługuje zmienną VPATH podczas budowy z drzewa źródłowego. W przypadku systemu Windows, VPATH może wskazywać na lokalizację, która znajduje się poza katalogiem instalacyjnym Pythona, co może umożliwić użytkownikom o niskich uprawnieniach tworzenie plików, które mogą być wykorzystane do uzyskania dostępu do alternatywnego folderu `Lib`.
- CVE-2026-9669Wysokie
Obiekty bz2.BZ2Decompressor mogły być ponownie używane po błędzie dekompresji. Jeśli aplikacja przechwyciła wynikowy wyjątek OSError i ponowiła próbę z tym samym dekompresorem, spreparowane dane mogły spowodować wznowienie dekompresji z nieprawidłowego stanu wewnętrznego i zapisy poza zakresem do bufora stosu. Może to doprowadzić do awarii procesu podczas przetwarzania niezaufanych danych.
- CVE-2026-7774Średnie
Funkcja tarfile.data_filter w Pythonie może zostać ominięta przez spreparowane dowiązania symboliczne, co pozwala na zapis plików poza docelowym katalogiem podczas wyodrębniania archiwum tar. Atakujący może umieścić pliki w dowolnej lokalizacji.
- CVE-2026-3276Średnie
Funkcja unicodedata.normalize() może zużywać nadmierną moc CPU podczas przetwarzania specjalnie spreparowanych danych Unicode zawierających długie ciągi znaków kombinujących o zmiennych wartościach klasy porządkowania kanonicznego. Problem dotyczy wszystkich form normalizacji.
- CVE-2026-8328Średnie
Podatność w funkcji ftpcp() w module ftplib.py języka Python. Funkcja ta nie została zaktualizowana podczas naprawy CVE-2021-4189, co pozwala atakującemu na kontrolowanie adresu IP i portu przekazywanego do target.sendport().
- CVE-2026-3298Wysokie
Metoda sock_recvfrom_into() w asyncio.ProactorEventLoop (tylko Windows) nie sprawdzała granic bufora danych przy użyciu parametru nbytes, co umożliwiało zapis poza buforem, jeśli dane były większe niż rozmiar bufora.
- CVE-2026-6100Wysokie
W bibliotece standardowej Pythona wykryto podatność use-after-free w klasach `lzma.LZMADecompressor`, `bz2.BZ2Decompressor` i `gzip.GzipFile`. Problem występuje, gdy alokacja pamięci zakończy się błędem `MemoryError`, a instancja dekompresora jest ponownie używana. Luka została załatana przez usunięcie wiszącego wskaźnika w tym konkretnym scenariuszu.
- CVE-2026-4519Niskie
Podatność w API webbrowser.open() w Pythonie pozwalała na akceptowanie adresów URL rozpoczynających się od myślników, które mogły być interpretowane jako opcje linii poleceń przez niektóre przeglądarki internetowe. Nowe zachowanie odrzuca takie adresy URL.
- CVE-2025-0938Średnie
Funkcje standardowej biblioteki Pythona `urllib.parse.urlsplit` i `urlparse` akceptują nazwy domen zawierające nawiasy kwadratowe, co jest niezgodne z RFC 3986. Nawiasy kwadratowe są przeznaczone wyłącznie jako ograniczniki dla hostów IPv6 i IPvFuture w adresach URL. Może to prowadzić do różnic w parsowaniu między parserem URL Pythona a innymi parserami zgodnymi ze specyfikacją.
- CVE-2023-40217Średnie
Wykryto problem w Pythonie przed wersją 3.8.18, 3.9.x przed 3.9.18, 3.10.x przed 3.10.13 oraz 3.11.x przed 3.11.5, który dotyczy serwerów korzystających z uwierzytelniania klienta TLS. W przypadku szybkiego zamknięcia gniazda serwera TLS, dane mogą być odczytywane z bufora gniazda, mimo że nie są uwierzytelnione.
- CVE-2022-48564Średnie
Funkcja read_ints w plistlib.py w Pythonie do wersji 3.9.1 jest podatna na atak DoS poprzez wyczerpanie CPU i RAM podczas przetwarzania zniekształconych plików Apple Property List w formacie binarnym.
- CVE-2022-48560Wysokie
W Pythonie do wersji 3.9 występuje podatność use-after-free w funkcji heappushpop z modułu heapq. Może ona prowadzić do uszkodzenia pamięci podczas operacji na stercie.
- CVE-2022-45061Wysokie
W Pythonie przed wersją 3.11.1 występuje niepotrzebny algorytm kwadratowy w jednej ze ścieżek przetwarzania danych wejściowych do dekodera IDNA (RFC 3490). Spreparowana, nadmiernie długa nazwa hosta podana do dekodera może doprowadzić do ataku typu CPU denial of service.
- CVE-2021-4189Średnie
W Pythonie, a konkretnie w bibliotece klienta FTP w trybie pasywnym (PASV), stwierdzono błąd polegający na tym, że klient FTP domyślnie ufa hostowi z odpowiedzi PASV. Pozwala to atakującemu na ustawienie złośliwego serwera FTP, który może nakłonić klientów FTP do połączenia się z podanym adresem IP i portem. Ta podatność może prowadzić do skanowania portów przez klienta FTP, co w innym przypadku nie byłoby możliwe.
- CVE-2021-28861Wysokie
Python w wersjach od 3.x do 3.10 zawiera podatność otwartego przekierowania w pliku lib/http/server.py, wynikającą z braku ochrony przed wielokrotnymi ukośnikami (/) na początku ścieżki URI. Może to prowadzić do ujawnienia informacji. Podatność jest kwestionowana przez stronę trzecią, ponieważ dokumentacja http.server.html ostrzega, że http.server nie jest zalecany do użytku produkcyjnego i implementuje jedynie podstawowe kontrole bezpieczeństwa.
- CVE-2022-26488Wysokie
W Pythonie przed 3.10.3 w systemie Windows lokalni użytkownicy mogą uzyskać podniesione uprawnienia, ponieważ ścieżka wyszukiwania jest niewystarczająco zabezpieczona. Instalator może pozwolić lokalnemu atakującemu na dodanie katalogów zapisywalnych przez użytkownika do systemowej ścieżki wyszukiwania. Aby wykorzystać podatność, administrator musi zainstalować Pythona dla wszystkich użytkowników i włączyć wpisy PATH. Użytkownik niebędący administratorem może wywołać naprawę, która nieprawidłowo dodaje ścieżki zapisywalne przez użytkownika do PATH, umożliwiając przejęcie ścieżki wyszukiwania innych użytkowników i usług systemowych. Dotyczy to Pythona (CPython) do 3.7.12, 3.8.x do 3.8.12, 3.9.x do 3.9.10 i 3.10.x do 3.10.2.
- CVE-2021-3426Średnie
W Python 3 występuje błąd w pydoc. Lokalny lub sąsiedni atakujący, który odkryje lub przekona innego lokalnego lub sąsiedniego użytkownika do uruchomienia serwera pydoc, może uzyskać dostęp do serwera i wykorzystać go do ujawnienia wrażliwych informacji należących do innego użytkownika, do których normalnie nie miałby dostępu. Największe ryzyko tego błędu dotyczy poufności danych. Błąd dotyczy wersji Pythona przed 3.8.9, przed 3.9.3 i przed 3.10.0a7.
Dane podatności pochodzą z NVD (NIST) · CISA KEV · EPSS

