Выпуск curl 7.71.0 з ухіленнем двух уразлівасцяў

Даступная новая версія ўтыліты для атрымання і адпраўкі дадзеных па сетцы завітак 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@rd123" і імя карыстальніка "dan", curl згенеруе URL "https://dan:passw@[электронная пошта абаронена]/path” замест “https://dan:passw%[электронная пошта абаронена]/path» і адправіць запыт на рэзалінг хаста «[электронная пошта абаронена]» замест «example.com».

    Праблема праяўляецца пры ўключэнні падтрымкі адносных HTTP-рэдыктароў (адключаюцца праз CURLOPT_FOLLOWLOCATION). У выпадку выкарыстання традыцыйных DNS інфармацыю аб частцы пароля можа пазнаць провадэр DNS і атакавалы, мелы магчымасць перахопу транзітнага сеткавага трафіку (нават калі зыходны запыт быў па HTTPS, бо DNS-трафік не шыфруецца). Пры ўжыванні DNS-over-HTTPS (DoH) уцечка абмяжоўваецца аператарам DoH.

Крыніца: opennet.ru

Дадаць каментар