Выпуск curl 7.71.0 с устранением двух уязвимостей

26 июня 2020 года

Доступна новая версия утилиты для получения и отправки данных по сети - 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.

Источники править

 
 
Creative Commons
Эта статья содержит материалы из статьи «Выпуск curl 7.71.0 с устранением двух уязвимостей», опубликованной OpenNET и распространяющейся на условиях лицензии Creative Commons Attribution (CC BY) — указание автора, источник и лицензию.
 
Эта статья загружена автоматически ботом NewsBots и ещё не проверялась редакторами Викиновостей.
Любой участник может оформить статью: добавить иллюстрации, викифицировать, заполнить шаблоны и добавить категории.
Любой редактор может снять этот шаблон после оформления и проверки.

Комментарии

Викиновости и Wikimedia Foundation не несут ответственности за любые материалы и точки зрения, находящиеся на странице и в разделе комментариев.