Издание на curl 7.71.0 с отстраняване на две уязвимости

Достъпна нова версия на утилитата за получаване и изпращане на данни по мрежата — curl 7.71.0, осигуряваща възможност за гъвкаво формулиране на заявката с задаване на параметри като cookie, user_agent, referer и всякакви други заглавки. cURL поддържа HTTP, HTTPS, HTTP/2.0, HTTP/3, SMTP, IMAP, POP3, Telnet, FTP, LDAP, RTSP, RTMP и други мрежови протоколи. Паралелно с него е публикувано обновление на библиотеката libcurl, която предлага API за използване на всички функции на curl в програми на езици като C, Perl, PHP, Python.

В новото издание е добавена опцията „—retry-all-errors“ за извършване на повторни опити при възникване на всякакви грешки и са отстранени две уязвимости:

  • Уязвимостта CVE-2020-8177 позволяваща презапис на локален файл в системата при достъп до контролирания от атакуващия сървър. Проблемът възниква само при едновременното използване на опции „-J“ („—remote-header-name“) и „-i“ („—head“). Опцията „-J“ позволява да се запише файл с име, посочено в заглавката
    „Content-Disposition“. Ако файл с такова име вече съществува, програмата curl обикновено отказва да извърши презаписа, но при наличието на опцията „-i“ логиката на проверката се нарушава и файлът се презаписва (проверката се извършва на етап получаване на тялото на отговора, но при опцията „-i“ в началото се извеждат HTTP заглавките и те успяват да се запишат преди започването на обработката на тялото на отговора). В файлa се записват само HTTP заглавки, но сървърът може да предостави произволни данни вместо заглавките и те ще бъдат записани.
  • Уязвимостта CVE-2020-8169 може да доведе до теч на част от паролите за достъп до сайта (Basic, Digest, NTLM и т.н.) от DNS сървъра. Когато символът „@“ се използва в паролата, която също се използва като разделител на паролата в URL, при задействане на HTTP пренасочване, curl ще изпрати част от паролата след символа „@“ заедно с домейна за определяне на името. Например, при указване на парола „passw@rd123“ и потребителско име „dan“, curl ще генерира URL „https://dan:passw@rd123@example.com/path“ вместо „https://dan:passwrd123@example.com/path“ и ще изпрати заявка за разрешаване на хоста „rd123@example.com“ вместо „example.com“.

    Проблемът се проявява при активиране на поддръжката на относителни HTTP пренасочвания (изключват се чрез CURLOPT_FOLLOWLOCATION). В случай на използване на традиционен DNS, информация за част от паролата може да бъде открита от DNS провайдера и атакуващия, способен да прихване транзитния мрежов трафик (дори ако оригиналната заявка е била по HTTPS, тъй като DNS трафикът не е шифрован). При прилагане на DNS-over-HTTPS (DoH), изтичането е ограничено до оператора на DoH.

Източник: opennet.ru

Купете надежден хостинг за сайтове със защита от DDoS, VPS и VDS сървъри 🔥 Купете надежден хостинг за сайтове със защита от DDoS, VPS и VDS сървъри | ProHoster