CVE-2021-28363
ŚrednieCVSS 6.5Prawdopodobieństwo exploitacji (EPSS)
Wysokie ryzykoPercentyl 81 - wyżej niż 81% wszystkich znanych CVE
Streszczenie
Biblioteka urllib3 w wersjach 1.26.x przed 1.26.4 dla Pythona pomija walidację certyfikatu SSL w niektórych przypadkach dotyczących połączeń HTTPS do proxy HTTPS. Początkowe połączenie z proxy HTTPS (jeśli SSLContext nie jest podany przez proxy_config) nie weryfikuje nazwy hosta certyfikatu. Oznacza to, że certyfikaty dla różnych serwerów, które nadal poprawnie walidują się z domyślnym SSLContext urllib3, będą po cichu akceptowane.
Ocena ryzyka
Atakujący może wykorzystać tę podatność do przeprowadzenia ataku man-in-the-middle, podszywając się pod serwer proxy HTTPS. Może to prowadzić do przechwycenia lub modyfikacji przesyłanych danych, w tym danych uwierzytelniających.
Rekomendacja
Zaktualizuj bibliotekę urllib3 do wersji 1.26.4 lub nowszej. Upewnij się, że połączenia z proxy HTTPS są odpowiednio weryfikowane.
Inne podatności w urllib3
Zobacz wszystkie- CVE-2024-37891Średnie
Podatność w bibliotece urllib3 polega na tym, że nagłówek Proxy-Authorization nie jest usuwany przy przekierowaniach cross-origin, gdy użytkownik nie korzysta z wbudowanego wsparcia proxy. Może to prowadzić do wycieku danych uwierzytelniających do złośliwego serwera, jeśli spełnione są określone warunki. Podatność ma niską severity i wymaga nieprawidłowej konfiguracji.
- CVE-2026-97689Wysokie
Biblioteka urllib3 w wersjach od 1.10.3 do 2.8.0 posiada podatność polegającą na nieograniczonej alokacji pamięci. Metody HTTPResponse.read_chunked i HTTPResponse.stream buforują pole rozmiaru fragmentu (chunk-size) bez limitu długości, aż do napotkania znaku nowej linii lub końca strumienia. Złośliwy serwer HTTP może wysłać bardzo długą, niezakończoną linię rozmiaru fragmentu, co prowadzi do wyczerpania pamięci procesu klienta.
- CVE-2026-97688Średnie
W bibliotece urllib3 (wersje od 2.6.2 do 2.8.0) metody HTTPResponse.stream i HTTPResponse.read_chunked mogą wejść w nieskończoną pętlę, ponieważ dekoder Deflate zachowuje końcowe bajty jako niezużyte dane wejściowe po osiągnięciu końca strumienia i wielokrotnie je dekoduje bez postępu. Problem występuje, gdy niezaufany serwer wyśle odpowiedź chunked z kodowaniem Deflate, której zdekodowana treść przekracza dodatni skończony rozmiar porcji, a zakodowana treść ma końcowe bajty.
- CVE-2026-97687Wysokie
Biblioteka urllib3 w wersjach od 1.26.0 do 2.8.0 nieprawidłowo stosuje ustawienia TLS serwera docelowego do połączenia z proxy HTTPS. Ścieżki konfiguracji proxy_ssl_context, proxy_assert_hostname, proxy_assert_fingerprint, ssl_context, cert_reqs, verify_mode, use_forwarding_for_https=True oraz CERT_NONE nie pozostają rozdzielone. Ustawienie cert_reqs=CERT_NONE może nadpisać proxy_ssl_context.verify_mode, a zmiana ta utrzymuje się w kolejnych połączeniach, co może skutkować połączeniem z proxy HTTPS bez weryfikacji certyfikatu.
- CVE-2026-44432Wysokie
Biblioteka urllib3 dla Pythona w wersjach od 2.6.0 do 2.7.0 przed poprawką zawiera podatność polegającą na dekompresji całej odpowiedzi zamiast żądanej porcji podczas drugiego wywołania HTTPResponse.read(amt=N) przy użyciu oficjalnej biblioteki Brotli lub po wywołaniu HTTPResponse.drain_conn() po częściowym odczycie. Może to prowadzić do nadmiernego zużycia zasobów (wysokie obciążenie CPU i alokacja pamięci) po stronie klienta.
- CVE-2026-21441Wysokie
Biblioteka urllib3 dla Pythona w wersjach od 1.22 do 2.6.2 nieprawidłowo dekompresuje całe treści odpowiedzi HTTP na przekierowania, nawet przy użyciu API strumieniowego. Umożliwia to atak typu „bomba dekompresyjna” prowadzący do nadmiernego zużycia zasobów klienta.
- CVE-2025-66471Wysokie
urllib3 to przyjazna dla użytkownika biblioteka HTTP dla Pythona. Począwszy od wersji 1.0 do 2.6.0, API strumieniowe nieprawidłowo obsługuje mocno skompresowane dane. Podczas strumieniowania skompresowanej odpowiedzi urllib3 może wykonać dekompresję na podstawie nagłówka Content-Encoding (np. gzip, deflate, br, zstd). Logika dekompresji może spowodować pełne zdekodowanie małej ilości mocno skompresowanych danych w jednej operacji, co prowadzi do nadmiernego zużycia zasobów (wysokie użycie CPU i ogromna alokacja pamięci).
- CVE-2025-66418Wysokie
urllib3 to przyjazna dla użytkownika biblioteka HTTP dla Pythona. Począwszy od wersji 1.24 do 2.6.0, liczba linków w łańcuchu dekompresji była nieograniczona, co pozwalało złośliwemu serwerowi na wstawienie praktycznie nieograniczonej liczby kroków kompresji, prowadząc do wysokiego użycia CPU i ogromnej alokacji pamięci. Podatność została naprawiona w wersji 2.6.0.
Oryginalny opis (angielski, źródło NVD)
The urllib3 library 1.26.x before 1.26.4 for Python omits SSL certificate validation in some cases involving HTTPS to HTTPS proxies. The initial connection to the HTTPS proxy (if an SSLContext isn't given via proxy_config) doesn't verify the hostname of the certificate. This means certificates for different servers that still validate properly with the default urllib3 SSLContext will be silently accepted.
Dane podatności pochodzą z NVD (NIST) · CISA KEV · EPSS

