Biblioteka urllib3 w wersjach przed 1.23 nie usuwa nagłówka HTTP Authorization podczas przekierowania cross-origin (do innego hosta, portu lub schematu). Może to prowadzić do ujawnienia danych uwierzytelniających niezamierzonym serwerom lub ich przesyłania w postaci niezaszyfrowanej.
▸ Pokaż oryginał (EN)
urllib3 before version 1.23 does not remove the Authorization HTTP header when following a cross-origin redirect (i.e., a redirect that differs in host, port, or scheme). This can allow for credentials in the Authorization header to be exposed to unintended hosts or transmitted in cleartext.
Gdy klient wykonuje żądanie HTTP zawierające nagłówek Authorization i serwer odpowiada przekierowaniem do innego hosta, portu lub schematu (cross-origin redirect), biblioteka urllib3 przed wersją 1.23 nie usuwa tego nagłówka przed wysłaniem kolejnego żądania. W efekcie dane uwierzytelniające (np. tokeny Bearer, dane Basic Auth) są automatycznie przesyłane do docelowego serwera przekierowania, który może być kontrolowany przez atakującego lub być niezaufany. Dodatkowo zmiana schematu z HTTPS na HTTP może spowodować przesłanie poświadczeń w postaci jawnego tekstu (cleartext).
Atakujący może przechwycić dane uwierzytelniające użytkownika (nagłówek Authorization) poprzez wymuszenie przekierowania cross-origin lub poprzez podsłuch niezaszyfrowanego ruchu HTTP. Może to prowadzić do nieautoryzowanego dostępu do kont i zasobów chronionych tymi poświadczeniami.
Należy zaktualizować bibliotekę urllib3 do wersji 1.23 lub nowszej. Użytkownicy Red Hat powinni zastosować patche opisane w erracie RHSA-2019:2272. Użytkownicy openSUSE powinni zastosować aktualizacje zgodnie z biuletynem opensuse-security-announce z września 2019. Ogólnie zaleca się również unikanie przekierowań cross-origin w środowiskach wymagających uwierzytelnienia oraz stosowanie walidacji docelowych adresów URL po stronie aplikacji.
Python urllib3 w wersjach przed 1.23; pakiety urllib3 dostarczone w ramach dystrybucji Fedora oraz Red Hat Enterprise Linux (zgodnie z referencjami producenta)
Podatność zgłoszona w GitHub Issues urllib3 pod numerem #1316. Poprawka wprowadzona w wersji 1.23 biblioteki urllib3.
CVSS:3.0/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:HFedora Project Fedora
OSFedoraproject282930Python Urllib3
APPPython< 1.23
Powiązane podatności
PHP CGI argument injection – RCE na Windows przez mechanizm Best-Fit
Type Confusion w V8 (Google Chrome) — RCE przez spreparowaną stronę HTML
Type Confusion w silniku V8 Chrome — zdalne wykonanie kodu (RCE)
Use-after-free w Google Chrome Visuals umożliwiający ucieczkę z sandbox
Integer overflow w Skia w Google Chrome — sandbox escape