CVE-2024-6197
libcurl: ошибка освобождения памяти при разборе TLS-сертификата
Проверьте curl/libcurl 8.6.0–8.8.0, собранные с GnuTLS, wolfSSL, Schannel, Secure Transport или mbedTLS. Специальный сертификат сервера мог вызвать падение; исправление — 8.9.0.
Кому нужно проверить
Администраторам и разработчикам сервисов, принимающих внешние TLS-соединения через curl/libcurl. Важна не только марка продукта, но и конкретная версия, способ установки, операционная система и конфигурация.
В чём риск
При разборе специально сформированного сертификата могла выполниться операция освобождения памяти вне heap. Современный malloc обычно завершает процесс; выполнение кода не заявлено как обычный результат.
Затронутые версии
Затронуты curl/libcurl 8.6.0–8.8.0 с GnuTLS, wolfSSL, Schannel, Secure Transport или mbedTLS. Уязвимый путь разбирает некорректную UTF-8 строку ASN.1 в сертификате TLS от сервера. Сборки с другими TLS-backend по advisory не затронуты.
Исправленные версии
Исправлено в curl/libcurl 8.9.0; допустимы патч или незатронутый TLS-backend. Для пакета ОС учитывайте backport.
Что сделать
- 1Проверьте версию и TLS-backend реальной libcurl, включая копии в контейнерах и приложениях.
- 2Сделайте резервную копию доверенных сертификатов и проверьте исправление на staging; не отключайте TLS-проверку.
- 3Установите 8.9.0 или пакет поставщика, пересоберите статические приложения и подготовьте откат образа.
- 4Временно ограничьте обращения к недоверенным TLS-серверам, если обновление задерживается; это не замена патчу.
- 5Перезапустите процессы со старой библиотекой, проверьте падения и не публикуйте core dump.
Путь от сертификата к сбою
Нужны подходящая версия, TLS-backend и некорректное поле сертификата.
- 1Сервер предлагает сертификат с некорректной ASN.1-строкой.
- 2Подходящий backend передаёт её libcurl.
- 3Парсер освобождает не принадлежащий heap буфер.
- 4Процесс обычно завершается; обновление закрывает путь.
Примеры конфигурации и проверки
curl -q --versionЛокальная read-only команда без sudo. Она не делает запрос; встроенная libcurl приложения может отличаться от системного curl.
Как не подпустить ботов к сайту
BotProtection принимает запросы перед вашим сайтом и фильтрует автоматизированные обращения. Поэтому ботам сложнее добраться до уязвимого компонента и начать его проверять или атаковать, а вероятность успешной автоматизированной атаки становится значительно ниже. Это дополнительный слой защиты: обновление уязвимых компонентов, проверка журналов и реагирование на инциденты остаются обязательными.
Первоисточники
Снизьте шанс атаки до того, как бот дойдёт до сайта
Подключите BotProtection как фильтр перед сайтом: подозрительные автоматизированные запросы отсекаются до обращения к вашему серверу. Это значительно снижает вероятность автоматизированной атаки, но не исправляет саму уязвимость, поэтому обновление и настройка компонентов остаются обязательными.