CVE-2024-3220
NiskieCVSS 2.3Prawdopodobieństwo exploitacji (EPSS)
Podwyższone ryzykoPercentyl 53 - wyżej niż 53% wszystkich znanych CVE
Streszczenie
W module standardowym CPython 'mimetypes' na Windows domyślna lista znanych lokalizacji plików jest zapisywalna, co pozwala innym użytkownikom tworzyć nieprawidłowe pliki powodujące błąd MemoryError przy starcie Pythona lub błędną interpretację rozszerzeń plików. Problem wynika z używania na Windows domyślnych ścieżek z Linuksa i macOS (np. '/etc/mime.types'), które na Windows są lokalizacjami zapisywalnymi przez użytkownika ('C:\etc\mime.types').
Ocena ryzyka
Lokalny atakujący może wywołać odmowę usługi (MemoryError przy starcie Pythona) lub doprowadzić do błędnego rozpoznawania typów plików, co może mieć skutki bezpieczeństwa.
Rekomendacja
Na platformach Windows wywołuj mimetypes.init() z pustą listą ('[]'), aby nie korzystać z domyślnej listy znanych lokalizacji plików, lub zaktualizuj CPython do wersji z poprawką.
Inne podatności w CPython
Zobacz wszystkie- CVE-2024-6232Średnie
W CPython występuje podatność średniego ryzyka (MEDIUM) związana z wyrażeniami regularnymi. Podczas analizy nagłówków plików tar w tarfile.TarFile, nadmierne cofanie się (backtracking) w wyrażeniach regularnych może prowadzić do ataku ReDoS (Regular Expression Denial of Service) poprzez specjalnie spreparowane archiwa tar.
- CVE-2024-6923Średnie
W CPython moduł email nieprawidłowo cytuje znaki nowej linii w nagłówkach wiadomości e-mail podczas serializacji. Umożliwia to wstrzyknięcie nagłówka (header injection) podczas serializacji wiadomości e-mail, co stanowi podatność średniego ryzyka (MEDIUM).
- CVE-2024-11168Średnie
Funkcje urllib.parse.urlsplit() i urlparse() w Pythonie nieprawidłowo walidują hosty w nawiasach kwadratowych (`[]`), akceptując hosty, które nie są IPv6 ani IPvFuture. To zachowanie jest niezgodne z RFC 3986 i może potencjalnie umożliwić ataki SSRF (Server-Side Request Forgery), jeśli URL jest przetwarzany przez więcej niż jeden parser URL.
- CVE-2024-8088Średnie
W CPython moduł zipfile (konkretnie zipfile.Path) zawiera podatność wysokiego ryzyka (HIGH). Podczas iteracji po nazwach wpisów w archiwum zip (np. metody namelist(), iterdir()) może dojść do nieoczekiwanego zachowania. Należy zauważyć, że popularniejsza klasa zipfile.ZipFile nie jest dotknięta.
- CVE-2024-7592Niskie
W CPythonie, w module bibliotecznym 'http.cookies', wykryto podatność o niskiej wadze. Podczas parsowania ciasteczek zawierających znaki ucieczki z backslashem, parser używa algorytmu o złożoności kwadratowej, co prowadzi do nadmiernego zużycia CPU.
- CVE-2026-2297Średnie
W CPython, hook importu obsługujący starsze pliki *.pyc (SourcelessFileLoader) jest nieprawidłowo obsługiwany w FileLoader (klasie bazowej) i nie używa io.open_code() do odczytu plików .pyc. W związku z tym handlery sys.audit dla tego zdarzenia audytu nie są wywoływane.
- CVE-2025-4516Średnie
W CPython występuje problem podczas używania `bytes.decode("unicode_escape", error="ignore|replace")`. Jeśli nie używasz kodowania "unicode_escape" lub obsługi błędów, nie jesteś dotknięty. Aby ominąć problem, możesz zaprzestać używania parametru error= i zamiast tego opakować wywołanie bytes.decode() w try-except łapiący DecodeError.
- CVE-2024-5642Średnie
CPython 3.9 i wcześniejsze nie blokują konfiguracji pustej listy ("[]") dla SSLContext.set_npn_protocols(), co jest nieprawidłową wartością dla bazowego API OpenSSL. Prowadzi to do nadmiernego odczytu bufora podczas używania NPN. Podatność ma niską wagę, ponieważ NPN nie jest szeroko używane, a określenie pustej listy jest mało prawdopodobne w praktyce.
- CVE-2023-6507Średnie
W CPython 3.12.0 w module subprocess na platformach POSIX stwierdzono problem: gdy parametr extra_groups=[] jest używany, proces nie wywołuje setgroups(0, NULL) przed exec(), co powoduje, że nowy proces dziedziczy grupy procesu nadrzędnego. Problem został naprawiony w CPython 3.12.1 i dotyczy tylko procesów uruchomionych z uprawnieniami root.
- CVE-2015-20107Wysokie
W Pythonie (CPython) do wersji 3.10.8 moduł mailcap nie dodaje znaków ucieczki do poleceń pochodzących z systemowego pliku mailcap. Może to pozwolić atakującym na wstrzyknięcie poleceń powłoki do aplikacji wywołujących mailcap.findmatch z niezaufanymi danymi, jeśli brakuje walidacji nazw plików lub argumentów. Poprawka została również wstecznie przeniesiona do wersji 3.7, 3.8, 3.9.
Oryginalny opis (angielski, źródło NVD)
There is a defect in the CPython standard library module “mimetypes” where on Windows the default list of known file locations are writable meaning other users can create invalid files to cause MemoryError to be raised on Python runtime startup or have file extensions be interpreted as the incorrect file type. This defect is caused by the default locations of Linux and macOS platforms (such as “/etc/mime.types”) also being used on Windows, where they are user-writable locations (“C:\etc\mime.types”). To work-around this issue a user can call mimetypes.init() with an empty list (“[]”) on Windows platforms to avoid using the default list of known file locations.
Dane podatności pochodzą z NVD (NIST) · CISA KEV · EPSS

