Представен е релизът GNU Wget 1.25, програма за автоматизирано сваляне на файлове с използване на протоколи HTTP/HTTPS и FTP/FTPS. Утилитата поддържа функции като възобновяване на прекъснати сваляния, огледално копиране на сайтове с филтриране на сваляните данни по маски, преобразуване на линкове в документи, задаване на бисквитки и обновяване само на променени файлове. Кодът на проекта е написан на C и се разпространява под лиценза GPLv3.
В новата версия:
- Преработено е анализирането на част от URL с информация за потребителското име (protocol://userinfo@host:port/path). По-рано wget неправилно обработваше символа «;» при анализирането на userinfo, което водеше до уязвимост (CVE-2024-38428), тъй като част от данните userinfo можеше да бъде обработена като име на хост. Например, потребителското име «attackerhost;» в URL «ftp://attackerhost;@host» водеше до свързване с хоста «attackerhost», вместо с «host».
- Подкрепата за съкратен формат на URL-линкове към HTTP и FTP ресурси (без явно посочен протокол, например, «wget username:password@myserver»), който преди това бе обявен за остарял и водеше до уязвимост CVE-2024-10524, е прекратена. Информацията за уязвимостта все още не е разкрита, но изглежда, че е един от вариантите на споменатия проблем CVE-2024-38428.
- Четенето от файлове и стандартния поток (stdin) е преминало на режим без блокиране. Промените позволяват постепенно предаване на линкове през входния поток, използвайки командата «print_urls | wget -i-». По-рано wget четеше наличните данни и веднага затваряше файловия дескриптор.
Освен това е представена утилита за получаване и изпращане на данни по мрежата — curl 8.11.0, предлагаща възможност за лесно формулиране на заявка с задаване на параметри като бисквитки, user_agent, referer и всякакви други заглавки. cURL поддържа HTTP, HTTPS, HTTP/2.0, HTTP/3, SMTP, IMAP, POP3, SSH, Telnet, FTP, LDAP, RTSP, RTMP и други мрежови протоколи. Кодът на проекта се разпространява под лиценза Curl (вариант на MIT лиценза).
Сред промените в curl 8.11:
- Устранена уязвимост (CVE-2024-9681), която дава възможност за достъп до ресурс по протокол http://, въпреки наличието на правила HSTS (HTTP Strict Transport Security), изискващи използването само на HTTPS. Проблемът се проявява при наличие на контрол над поддомейните на атакувания хост. Например, при заявка към хост x.example.com атакуващият може чрез манипулации с HTTP заглавието «Strict-Transport-Security:» да повлияе на данните в кеша HSTS за домейн example.com.
- Обявена е стабилна поддръжка на протокола WebSocket.
- Предоставена е възможност за използване на режима «—create-dirs» заедно с опцията «—dump-header».
- В криптобекенда, базиран на GnuTLS, е добавена поддръжка на сертификати в P12 формат.
- При използване на GnuTLS е реализирана поддръжка на механизма Early Data, който позволява на клиента да изпраща данни преди завършване на етапа на съгласуване на TLSv1.3 връзката.
- Добавена е настройка за деактивиране на протокола IPFS.
- За GnuTLS и wolfSSL е добавена поддръжка на кеширане на сесии на базата на QUIC протокола.
- Добавена е поддръжка за динамично активиране на TLS разширението ECH (Encrypted Client Hello), предназначено за криптиране на информация за параметрите на TLS сесиите, като желаното домейн име.
- Добавена е възможност за съвместно използване на опции «—show-headers» и «—remote-header-name», както и на опцията «—skip-existing» заедно с «—parallel».
Даниел Стенберг, автор на проекта curl, представи инициатива за поддържане на LTS версии (Rock-solid), при които ще се публикуват актуализации за поправка на сериозни грешки и уязвимости за поне 5 години. Първият LTS проект е обявен за версия 8.9.x, за която вече е формиран коригиращ релийз 8.9.2 с отстраняване на две уязвимости. Достъпът до LTS актуализации се предоставя само на клиенти, сключили договор за поддръжка.
Кодът на LTS версиите продължава да се разпространява под старата лицензия Curl (MIT вариант), но по отделна заявка се предвижда възможност за доставка под отделна търговска лицензия. Получените средства ще бъдат използвани за поддържане на проекта и финансиране на разработчиците. Нови LTS версии ще бъдат формирани на всеки 8-24 месеца. Използването на LTS версията ще осигури стабилна база, освободена от вероятността за регресивни промени.
Източник: opennet.ru
