curl 8.21.0

24 июня, после почти двух месяцев разработки, 531 коммита и исправления 276 ошибок, состоялся выпуск 8.21.0 (№275) кроссплатформенной многофункциональной консольной утилиты и библиотеки curl, написанных на языке C и распространяемых по лицензии curl.
Основные изменения
Безопасность
- Средний уровень серьёзности
- 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: уязвимость в алгоритме анализа файлов
cookiec точкой в конце домена, позволявшая злонамеренному 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.
Другие изменения
curl "https://img.example/photo[1-1000].jpg" -o "local-#.jpeg"
curl "https://example.{org,com}/{apples,mugs,coins}/img[1-1000].jpg" -o "file-#-#-#"
curl -T "{one,two,three}.jpg" https://ul.example/ -o "save-#"
curl -T "{one,two,three}.jpg" https://{ul1,ul2,ul3}.example/ -o "save-#-#"
- добавлена поддержка методов
CONNECTиMASQUE CONNECT-UDPHTTP/3-прокси; - удалено отслеживание зависимостей потоков HTTP/2;
- удалена поддержка
CURLAUTH_DIGEST_IE; - добавлена поддержка открытых ключей хоста SHA256 с использованием
libssh.
- локальные реализации криптографических алгоритмов;
- поддержка NTLM, SMB и TLS-SRP.
>>> Полный список изменений на curl.se (и в первой редакции этой новости)
>>> Видеопрезентация 8.21.0 на youtube
>>> Документация
>>> Страница загрузки
>>> Исходный код на GitHub
>>> Новость в блоге Даниэля Стенберга
