Выпуск 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 в программах на таких языках, как Си, Perl, PHP, Python.
В новом выпуске добавлена опция »--retry-all-errors» для осуществления повторных попыток выполнения операций при возникновении любых ошибок и устранено две уязвимости:
- Уязвимость CVE-2020–8177 позволяет перезаписать локальный файл в системе при обращении к подконтрольному атакующему серверу. Проблема проявляется только при одновременном использовании опций »-J» (»--remote-header-name») и »-i» (»--head»). Опция »-J» позволяет сохранить файл с именем, указанным в заголовке «Content-Disposition». В случае если файл с таким именем уже существует, программа curl в штатном режиме отказывается выполнить перезапись, но в случае наличия опции »-i» логика проверки нарушается и файл перезаписывается (проверка осуществляется на этапе получения тела ответа, но при опции »-i» вначале выводятся HTTP-заголовки и они успевают сохраниться до начала обработки тела ответа). В файл записываются только HTTP-заголовки, но сервер может отдать вместо заголовков произвольные данные и они будут записаны.
- Уязвимость CVE-2020–8169 может привести к утечке на сервер DNS части некоторых паролей доступа к сайту (Basic, Digest, NTLM и т.п.). При использовании символа »@» в пароле, который также используется в качестве разделителя пароля в URL, при срабатывании HTTP-перенаправления curl отправит часть пароля после символа »@» вместе с доменом для определения имени. Например, при указании пароля «passw@123» и имени пользователя «dan», curl сгенерирует URL «https://dan: passw@123@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.
Источник: http://www.opennet.ru/opennews/art.shtml? num=53239
© OpenNet