Wydanie curl 7.71.0 z usunięciem dwóch luk bezpieczeństwa

Dostępna nowa wersja narzędzia do odbierania i wysyłania danych przez sieć — curl 7.71.0, oferującego możliwość elastycznego formowania zapytań z wydawaniem takich parametrów jak cookie, user_agent, referer i innych nagłówków. cURL wspiera protokoły sieciowe takie jak HTTP, HTTPS, HTTP/2.0, HTTP/3, SMTP, IMAP, POP3, Telnet, FTP, LDAP, RTSP, RTMP i inne. Równocześnie pojawiła się aktualizacja równolegle rozwijanej biblioteki libcurl, oferującej API do wykorzystania wszystkich funkcji curl w programach w takich językach jak C, Perl, PHP, Python.

W nowym wydaniu dodano opcję „—retry-all-errors” do wykonywania ponownych prób operacji w przypadku wystąpienia jakichkolwiek błędów oraz naprawiono dwie podatności:

  • Luka CVE-2020-8177 pozwala na nadpisanie lokalnego pliku w systemie przy połączeniu z kontrolowanym przez atakującego serwerem. Problem objawia się tylko przy jednoczesnym użyciu opcji „-J” („—remote-header-name”) i „-i” („—head”). Opcja „-J” pozwala zapisać plik z nazwą wskazaną w nagłówku
    „Content-Disposition”. W przypadku gdy plik o takiej nazwie już istnieje, program curl w normalnym trybie odmawia nadpisania, ale w przypadku obecności opcji „-i” logika sprawdzania jest naruszana i plik jest nadpisywany (sprawdzenie odbywa się na etapie odbioru treści odpowiedzi, ale przy opcji „-i” najpierw wyświetlane są nagłówki HTTP i udaje się je zapisać przed rozpoczęciem przetwarzania treści odpowiedzi). Do pliku zapisywane są tylko nagłówki HTTP, ale serwer może zwrócić zamiast nagłówków dowolne dane, które również zostaną zapisane.
  • Luka CVE-2020-8169 może prowadzić do wycieku na serwerze DNS części niektórych haseł dostępu do witryny (Basic, Digest, NTLM itp.). Przy użyciu znaku „@” w haśle, który również służy jako separator hasła w URL, podczas aktywacji przekierowania HTTP curl wyśle część hasła po znaku „@” razem z domeną do ustalenia nazwy. Na przykład przy podaniu hasła „passw@rd123” i nazwy użytkownika „dan”, curl wygeneruje URL „https://dan:passw@rd123@example.com/path” zamiast „https://dan:passwrd123@example.com/path” i wyśle zapytanie o rozwiązywanie hosta „rd123@example.com” zamiast „example.com”.

    Problem pojawia się przy włączeniu obsługi względnych przekierowań HTTP (wyłączanych przez CURLOPT_FOLLOWLOCATION). W przypadku korzystania z tradycyjnego DNS, dostawca DNS oraz atakujący, który ma możliwość przechwycenia ruchu sieciowego, mogą uzyskać część hasła (nawet jeśli pierwotne żądanie było przez HTTPS, ponieważ ruch DNS nie jest szyfrowany). Przy zastosowaniu DNS-over-HTTPS (DoH) wyciek jest ograniczony do operatora DoH.

Źródło: opennet.ru

Kup solidny hosting stron z ochroną przed DDoS, serwery VPS VDS 🔥 Kup solidny hosting stron z ochroną przed DDoS, serwery VPS VDS | ProHoster