CVE-2019-9740
ŚrednieCVSS 6.1Prawdopodobieństwo exploitacji (EPSS)
Bardzo wysokie ryzykoPercentyl 92 - wyżej niż 92% wszystkich znanych CVE
Streszczenie
W bibliotekach urllib2 (Python 2.x do 2.7.16) oraz urllib (Python 3.x do 3.7.3) wykryto możliwość wstrzyknięcia CRLF, jeśli atakujący kontroluje parametr URL. Wstrzyknięcie następuje poprzez znaki \r\n w ciągu zapytania (po znaku ?), po których następuje nagłówek HTTP lub polecenie Redis. Podatność została naprawiona w nowszych wersjach Pythona.
Ocena ryzyka
Atakujący może wstrzyknąć dowolne nagłówki HTTP lub polecenia Redis, co może prowadzić do zatrucia odpowiedzi, podziału odpowiedzi HTTP lub nieautoryzowanych operacji. Ryzyko dotyczy aplikacji przetwarzających niezaufane adresy URL.
Rekomendacja
Zaktualizuj Python do wersji zawierającej poprawkę (np. 2.7.17+, 3.5.10+, 3.6.10+, 3.7.4+ lub nowszej) oraz waliduj i sanityzuj dane wejściowe pochodzące z URL.
Inne podatności w Python urllib
Zobacz wszystkie- CVE-2019-9947Średnie
W bibliotekach urllib2 (Python 2.x do 2.7.16) oraz urllib (Python 3.x do 3.7.3) wykryto możliwość wstrzyknięcia CRLF, jeśli atakujący kontroluje parametr URL. Wstrzyknięcie następuje poprzez znaki \r\n w komponencie ścieżki adresu URL (bez znaku ?), po których następuje nagłówek HTTP lub polecenie Redis. Podatność jest podobna do CVE-2019-9740 i została naprawiona w nowszych wersjach Pythona.
- CVE-2026-15806Średnie
Klasa HTTPPasswordMgr w module urllib.request oraz jej podklasy nie uwzględniały schematu URL przy dopasowywaniu zapisanych poświadczeń do żądanego adresu URL. Poświadczenia dodane dla https:// były używane również dla http://, co umożliwiało przechwycenie ich w postaci jawnego tekstu.
- CVE-2019-18348Średnie
W bibliotekach urllib2 (Python 2.x do 2.7.17) oraz urllib (Python 3.x do 3.8.0) wykryto możliwość wstrzyknięcia CRLF, jeśli atakujący kontroluje parametr URL. Wstrzyknięcie następuje poprzez znaki \r\n w komponencie hosta adresu URL, po których następuje nagłówek HTTP. Podatność jest podobna do CVE-2019-9740 i CVE-2019-9947 i została naprawiona w nowszych wersjach Pythona.
Oryginalny opis (angielski, źródło NVD)
An issue was discovered in urllib2 in Python 2.x through 2.7.16 and urllib in Python 3.x through 3.7.3. CRLF injection is possible if the attacker controls a url parameter, as demonstrated by the first argument to urllib.request.urlopen with \r\n (specifically in the query string after a ? character) followed by an HTTP header or a Redis command. This is fixed in: v2.7.17, v2.7.17rc1, v2.7.18, v2.7.18rc1; v3.5.10, v3.5.10rc1, 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.9, v3.6.9rc1; 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

