curl 8.22.0 закрыл девять уязвимостей и отказался от TLS-SRP
Девять CVE в curl и libcurl, одна в wcurl, 302 исправления и первые шаги к удалению NTLM, SMB и HTTP/2 Server Push.

2 сентября вышел curl 8.22.0. Вместе с релизом проект опубликовал десять новых CVE: девять закрыты в самом curl и libcurl, десятая касается обёртки wcurl. Это значит, что обновлять нужно не только консольную утилиту, но и всё, что линкуется с libcurl: языковые биндинги, пакетные менеджеры, мобильные и десктопные приложения, образы контейнеров.
По классификации самого проекта восемь из десяти уязвимостей имеют низкую серьёзность и две среднюю: CVE-2026-19931 про повторное использование соединения с Negotiate-аутентификацией и CVE-2026-80256 в wcurl. Критических нет, но набор показательный: проблемы найдены в проверке сертификатов, в куках и в аутентификации, то есть в местах, где curl обычно доверяют без оглядки.
Ключевые выводы
- curl 8.22.0 вышел 2 сентября 2026 года, это 276-й релиз проекта; между релизами прошло 70 дней.
- Десять CVE: девять в curl и libcurl и одна в wcurl; восемь низкой серьёзности, две средней.
- Из нового: экспериментальная поддержка HTTP Message Signatures по RFC 9421, блокировка отката на NTLM в SPNEGO, поддержка Apple GSS Framework.
- Удалена поддержка TLS-SRP; объявлены будущие удаления HTTP/2 Server Push, встроенных криптореализаций, NTLM и SMB.
- 302 исправления ошибок, 525 коммитов, 85 участников, из них 55 впервые.
Что именно закрыли
Полный список из базы уязвимостей curl, с оценками серьёзности самого проекта:
- CVE-2026-19931 (средняя): обход аутентификации Negotiate через повторное использование соединения, установленного от имени другого пользователя окружения.
- CVE-2026-13608 (низкая): обход SASL-аутентификации в OpenLDAP.
- CVE-2026-18924 (низкая): use-after-free в обработке HTTP/2 Server Push.
- CVE-2026-80229 (низкая): use-after-free в работе с провайдерами OpenSSL.
- CVE-2026-80230 (низкая): обход пиннинга публичного ключа при сборке с OpenSSL.
- CVE-2026-80231 (низкая): повторное использование соединения при работе с системным хранилищем сертификатов.
- CVE-2026-80255 (низкая): обход атрибута Secure у куки с помощью символа табуляции.
- CVE-2026-82208 (низкая): при сборке с wolfSSL попадание в кэш CA перекрывало пользовательский callback проверки сертификата.
- CVE-2026-82209 (низкая): куки с доменом из Public Suffix List принимались там, где не должны.
Отдельно идёт CVE-2026-80256 (средняя) в wcurl, обёртке для скачивания файлов одной командой: обратный слеш в аргументе позволял обойти её проверки. По данным advisory, уязвимый wcurl входил в поставку curl с 8.14.0 по 8.21.0 и распространялся отдельно, так что обновлять его нужно тем же путём, каким он к вам попал.
Четыре пункта из девяти объединяет одна черта: соединение или кука, проверенные в одном контексте, использовались в другом (CVE-2026-19931, 80231, 80255, 82209). Остальные касаются обхода аутентификации, use-after-free и проверки сертификатов. Для библиотеки, которая живёт в тысячах приложений и держит пул соединений, это самый неприятный класс ошибок: снаружи всё выглядит как штатная работа, а данные уходят не туда. По нашей оценке, реальная эксплуатация большинства из них требует специфической конфигурации (LDAP, Negotiate, wolfSSL, пиннинг), поэтому проект и оценил их как низкие. Но проверять, какая именно сборка libcurl у вас стоит и с чем она собрана, всё равно придётся.
Шесть изменений
Главная функциональная новинка, экспериментальная поддержка HTTP Message Signatures по RFC 9421. Это стандарт подписи HTTP-запросов и ответов на уровне заголовков: клиент подписывает выбранные части сообщения (метод, путь, отдельные заголовки, хэш тела), а сервер проверяет подпись независимо от TLS. Такие подписи используют платёжные API, федеративные соцсети и корпоративные шлюзы, где нужно доказать, что запрос не менялся на промежуточных прокси. Даниэль Стенберг подробно описывал реализацию в июльской заметке; в 8.22.0 функция помечена как экспериментальная, то есть включается при сборке и может поменять API.
Второе изменение, связанное с безопасностью: curl теперь блокирует откат на NTLM внутри SPNEGO-переговоров. Раньше при аутентификации Negotiate сервер мог предложить более слабый NTLM, и клиент соглашался; теперь такой откат запрещён. Это согласуется с планом удалить NTLM целиком в одном из следующих релизов.
Остальные пункты: поддержка Apple GSS Framework для Kerberos-аутентификации на macOS и iOS без сторонних библиотек, опция для быстрого UDP в системах Apple, так называемые API guards, и удаление поддержки TLS-SRP, редко используемого метода аутентификации по паролю внутри TLS. Появилось четыре новых опции curl_easy_setopt() и четыре новых ключа командной строки; новых публичных функций libcurl нет.
Что уберут дальше
В анонсе перечислены четыре будущих удаления: HTTP/2 Server Push, локальные криптореализации, NTLM и SMB. Server Push браузеры перестали поддерживать ещё несколько лет назад, и одна из сегодняшних CVE найдена как раз в этом коде. Локальные криптореализации, собственные реализации MD4, MD5 и подобных алгоритмов, которые curl использовал там, где не было TLS-бэкенда, тоже уходят: их оставалось поддерживать ради того же NTLM. Точные версии, в которых код исчезнет, в анонсе не названы.
На практике это касается тех, кто ходит curl в корпоративные Windows-сервисы через NTLM или скачивает файлы с SMB-шар. Таким скриптам стоит начать переезд на Kerberos/Negotiate и на другие протоколы уже сейчас.
Что делать
- Проверить версию:
curl --versionпокажет и версию curl, и с каким TLS-бэкендом она собрана (OpenSSL, wolfSSL, Schannel, Secure Transport). От бэкенда зависит применимость части CVE (OpenSSL, wolfSSL, системное хранилище сертификатов); остальные касаются протоколов и функций сборки: LDAP, Negotiate, HTTP/2, куки. - Обновиться до 8.22.0 из дистрибутива или со страницы загрузки. Если вы используете старую ветку с бэкпортами, проект обещает отдельный анонс Rock-solid curl в ближайшие дни.
- Пересобрать или обновить всё, что тянет libcurl статически или в составе своего образа: Docker-образы, мобильные приложения, скомпилированные биндинги для Python, PHP, Rust и Go.
- Если используете wcurl, обновить и его: CVE-2026-80256 закрыта в самой обёртке, а не в libcurl, и wcurl мог прийти как вместе с curl 8.14.0–8.21.0, так и отдельным пакетом.
- Если скрипты ходят по NTLM или SMB, запланировать переезд: оба протокола объявлены к удалению.
Следующий релиз curl запланирован на конец октября 2026 года, если по 8.22.0 не придут серьёзные регрессии. Отдельно стоит следить за анонсом Rock-solid curl: это ветка с исправлениями безопасности для тех, кто сидит на старой ветке и не может перейти на основную, и она выйдет позже основного релиза.
Источники: Daniel Stenberg: curl 8.22.0, curl: список уязвимостей, Скачать curl, Daniel Stenberg: HTTP Message Signatures with curl
Изображение на обложке: Логотип: curl project











