Релиз утилиты curl 8.21

Релиз утилиты curl 8.21

В конце июня 2026 года состоялся релиз утилиты curl 8.21. Код проекта написан на языке C и опубликован на GitHub под открытой лицензией curl (вариант лицензии MIT). Выпуск curl 8.0 состоялся в марте 2024 года. Предыдущая стабильная версия проекта вышла в апреле 2026 года.

Утилита curl предлагает возможность гибкого формирования сетевого запроса с заданием параметров cookie, user_agent, referer и любых других заголовков для HTTP/HTTPS. Помимо HTTPS, HTTP/1.x, HTTP/2.0 и HTTP/3 она поддерживает отправку запросов с использованием SMTP, IMAP, POP3, SSH, Telnet, FTP, SFTP, SMB, LDAP, RTSP, RTMP и других сетевых протоколов. Одновременно развивается библиотека libcurl, которая предоставляет API для задействования всех функций curl в программах на языках Си, Perl, PHP и Python.

В августе 2024 года автор curl Даниэль Стенберг объявил , что в открытый проект curl официально вошли наработки и разработчики wcurl вдобавок к trurl. Проект wcurl — это простая оболочка вокруг curl для лёгкой загрузки файлов без необходимости запоминать какие‑либо параметры.

Статистика этого релиза и всего проекта в рамках процесса разработки утилиты:

275-й релиз;

275-й релиз;

6 изменений;

6 изменений;

56 дней разработки (всего: 10 817);

56 дней разработки (всего: 10 817);

276 багов исправлено (всего: 14 187);

276 багов исправлено (всего: 14 187);

531 коммит (всего: 39 077);

531 коммит (всего: 39 077);

0 новых функций public libcurl (всего: 100);

0 новых функций public libcurl (всего: 100);

0 новых опций curl_easy_setopt() (всего: 308);

0 новых опций curl_easy_setopt() (всего: 308);

1 новая опция curl command line (всего: 274);

1 новая опция curl command line (всего: 274);

102 контрибутора, 69 новых (всего: 3 731);

102 контрибутора, 69 новых (всего: 3 731);

45 авторов, 26 новых (всего: 1 489);

45 авторов, 26 новых (всего: 1 489);

18 исправлений безопасности (всего: 206).

18 исправлений безопасности (всего: 206).

Основные изменения и дополнения в curl 8.21:

подготовлены патчи против уязвимостей: средний уровень серьёзности: CVE-2026-8925 : двойное освобождения памяти SASL; CVE-2026-8927 : утечка состояния аутентификации Digest между прокси-серверами в env-set; CVE-2026-9079 : утечка устаревших паролей к прокси-серверам; CVE-2026-11856 : утечка состояния аутентификации Digest между доменами. низкий уровень серьёзности: CVE-2026-8286 : неправильное повторное использование соединения STARTTLS; CVE-2026-8458 : неправильное повторное использование для различных сервисов; CVE-2026-8924 : уязвимость в алгоритме анализа файлов cookie c точкой в конце домена, позволявшая злонамеренному HTTP-серверу устанавливать «супер-cookie», обходивших проверку по списку Public Suffix List; CVE-2026-8926 : утечка пароля при использовании netrc и указании имени пользователя в URL-адресе; CVE-2026-8932 : неполное совпадение конфигурации mTLS при повторном использовании соединения; CVE-2026-9080 : использование памяти после освобождения после паузы в коллбаке сокета; CVE-2026-9545 : раскрытие ранних данных HTTP/3 (с опцией CURLSSLOPT_EARLYDATA); CVE-2026-9546 : отправка старого реферера; CVE-2026-9547 : неправильная проверка хоста при использовании SSH; CVE-2026-10536 : использование памяти после освобождения дерева зависимостей потоков HTTP/2; CVE-2026-11352 : цикл ожидания в QUIC с датаграмами UDP нулевой длины; CVE-2026-11564 : сохранение доверия нативному хранилищу сертификатов даже после переключения на пользовательские сертификаты; CVE-2026-11586 : исчерпание памяти WS Auto-PONG; CVE-2026-12064 : proto-default пропускал проверку SSH.

подготовлены патчи против уязвимостей:

средний уровень серьёзности: CVE-2026-8925 : двойное освобождения памяти SASL; CVE-2026-8927 : утечка состояния аутентификации Digest между прокси-серверами в env-set; CVE-2026-9079 : утечка устаревших паролей к прокси-серверам; CVE-2026-11856 : утечка состояния аутентификации Digest между доменами.

средний уровень серьёзности:

CVE-2026-8925 : двойное освобождения памяти SASL;

CVE-2026-8925 : двойное освобождения памяти SASL;

CVE-2026-8927 : утечка состояния аутентификации Digest между прокси-серверами в env-set;

CVE-2026-8927 : утечка состояния аутентификации Digest между прокси-серверами в env-set;

CVE-2026-9079 : утечка устаревших паролей к прокси-серверам;

CVE-2026-9079 : утечка устаревших паролей к прокси-серверам;

CVE-2026-11856 : утечка состояния аутентификации Digest между доменами.

CVE-2026-11856 : утечка состояния аутентификации Digest между доменами.

низкий уровень серьёзности: CVE-2026-8286 : неправильное повторное использование соединения STARTTLS; CVE-2026-8458 : неправильное повторное использование для различных сервисов; CVE-2026-8924 : уязвимость в алгоритме анализа файлов cookie c точкой в конце домена, позволявшая злонамеренному HTTP-серверу устанавливать «супер-cookie», обходивших проверку по списку Public Suffix List; CVE-2026-8926 : утечка пароля при использовании netrc и указании имени пользователя в URL-адресе; CVE-2026-8932 : неполное совпадение конфигурации mTLS при повторном использовании соединения; CVE-2026-9080 : использование памяти после освобождения после паузы в коллбаке сокета; CVE-2026-9545 : раскрытие ранних данных HTTP/3 (с опцией CURLSSLOPT_EARLYDATA); CVE-2026-9546 : отправка старого реферера; CVE-2026-9547 : неправильная проверка хоста при использовании SSH; CVE-2026-10536 : использование памяти после освобождения дерева зависимостей потоков HTTP/2; CVE-2026-11352 : цикл ожидания в QUIC с датаграмами UDP нулевой длины; CVE-2026-11564 : сохранение доверия нативному хранилищу сертификатов даже после переключения на пользовательские сертификаты; CVE-2026-11586 : исчерпание памяти WS Auto-PONG; CVE-2026-12064 : proto-default пропускал проверку SSH.

низкий уровень серьёзности:

CVE-2026-8286 : неправильное повторное использование соединения STARTTLS;

CVE-2026-8286 : неправильное повторное использование соединения STARTTLS;

CVE-2026-8458 : неправильное повторное использование для различных сервисов;

CVE-2026-8458 : неправильное повторное использование для различных сервисов;

CVE-2026-8924 : уязвимость в алгоритме анализа файлов cookie c точкой в конце домена, позволявшая злонамеренному HTTP-серверу устанавливать «супер-cookie», обходивших проверку по списку Public Suffix List;

CVE-2026-8924 : уязвимость в алгоритме анализа файлов cookie c точкой в конце домена, позволявшая злонамеренному HTTP-серверу устанавливать «супер-cookie», обходивших проверку по списку Public Suffix List;

CVE-2026-8926 : утечка пароля при использовании netrc и указании имени пользователя в URL-адресе;

CVE-2026-8926 : утечка пароля при использовании netrc и указании имени пользователя в URL-адресе;

CVE-2026-8932 : неполное совпадение конфигурации mTLS при повторном использовании соединения;

CVE-2026-8932 : неполное совпадение конфигурации mTLS при повторном использовании соединения;

CVE-2026-9080 : использование памяти после освобождения после паузы в коллбаке сокета;

CVE-2026-9080 : использование памяти после освобождения после паузы в коллбаке сокета;

CVE-2026-9545 : раскрытие ранних данных HTTP/3 (с опцией CURLSSLOPT_EARLYDATA);

CVE-2026-9545 : раскрытие ранних данных HTTP/3 (с опцией CURLSSLOPT_EARLYDATA);

CVE-2026-9546 : отправка старого реферера;

CVE-2026-9546 : отправка старого реферера;

CVE-2026-9547 : неправильная проверка хоста при использовании SSH;

CVE-2026-9547 : неправильная проверка хоста при использовании SSH;

CVE-2026-10536 : использование памяти после освобождения дерева зависимостей потоков HTTP/2;

CVE-2026-10536 : использование памяти после освобождения дерева зависимостей потоков HTTP/2;

CVE-2026-11352 : цикл ожидания в QUIC с датаграмами UDP нулевой длины;

CVE-2026-11352 : цикл ожидания в QUIC с датаграмами UDP нулевой длины;

CVE-2026-11564 : сохранение доверия нативному хранилищу сертификатов даже после переключения на пользовательские сертификаты;

CVE-2026-11564 : сохранение доверия нативному хранилищу сертификатов даже после переключения на пользовательские сертификаты;

CVE-2026-11586 : исчерпание памяти WS Auto-PONG;

CVE-2026-11586 : исчерпание памяти WS Auto-PONG;

CVE-2026-12064 : proto-default пропускал проверку SSH.

CVE-2026-12064 : proto-default пропускал проверку SSH.

улучшения в именованных шаблонах поиска.

улучшения в именованных шаблонах поиска.

добавлена поддержка методов CONNECT и MASQUE CONNECT-UDP HTTP/3-прокси;

добавлена поддержка методов CONNECT и MASQUE CONNECT-UDP HTTP/3-прокси;

удалено отслеживание зависимостей потоков HTTP/2;

удалено отслеживание зависимостей потоков HTTP/2;

удалена поддержка CURLAUTH_DIGEST_IE;

удалена поддержка CURLAUTH_DIGEST_IE;

добавлена поддержка открытых ключей хоста SHA256 с использованием libssh.

добавлена поддержка открытых ключей хоста SHA256 с использованием libssh.

В январе 2026 года автор curl Даниэль Стенберг объявил , что после почти тридцати лет работы в проекте у него уже 20 тысяч коммитов из 37 604. Он преодолел этот порог 17 января.

Ранее Стенберг сообщил , что проект прекратит программу вознаграждения за обнаружение ошибок в конце января 2026 года.

← Tech