нова версия на утилитата за извличане и изпращане на данни по мрежата — , предоставяща възможност за гъвкаво формулиране на заявки с определяне на параметри, като бисквитки, 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» за извършване на повторни опити за изпълнение на операции при възникване на всякакви грешки и бяха отстранени две уязвимости:
- позволяваща презапис на локален файл в системата при свързване с контролирания от атакуващия сървър. Проблемът се проявява само при едновременна употреба на опции «-J» («—remote-header-name») и «-i» («—head»). Опцията «-J» позволява запазване на файла с името, посочено в заглавката
«Content-Disposition». В случай че файл с такова име вече съществува, програмата curl по подразбиране отказва да извърши презапис, но при наличие на опция «-i» логиката на проверката се нарушава и файлът се презаписва (проверката се извършва на етапа на получаване на тялото на отговора, но при опцията «-i» първо се извеждат HTTP-заглавките и те успяват да се запазят преди започването на обработката на тялото на отговора). В файла се записват само HTTP-заглавки, но сървърът може да върне произволни данни вместо заглавките, и те ще бъдат записани. - может привести к утечке на сервер DNS части некоторых паролей доступа к сайту (Basic, Digest, NTLM и т.п.). При использовании символа «@» в пароле, который также используется в качестве разделителя пароля в URL, при срабатывании HTTP-перенаправления curl отправит часть пароля после символа «@» вместе с доменом для определения имени. Например, при указании пароля «passw@rd123» и имени пользователя «dan», curl сгенерирует URL «https://dan:passw@rd123@example.com/path» вместо «https://dan:passw%40rd123@example.com/path» и отправит запрос на резолвинг хоста «rd123@example.com» вместо «example.com».
Проблемът се проявява при активиране на поддръжката на относителни HTTP-пренасочвания (които се изключват чрез CURLOPT_FOLLOWLOCATION). При използване на традиционните DNS доставчикът на DNS и атакуващият, който има възможност да прихване транзитния мрежови трафик, могат да узнаят част от паролата (дори ако първоначалното искане е било по HTTPS, тъй като DNS-трафикът не е криптиран). При прилагане на DNS-over-HTTPS (DoH) изтичането е ограничено до оператора на DoH.
Източник: opennet.ru
