Все уязвимости

CVE-2024-9681

curl HSTS: поддомен мог изменить срок защиты родительского домена

Проверьте curl и libcurl 7.74.0–8.10.1, если приложение включает HSTS и обращается по HTTP к поддомену и родительскому домену. Ошибка могла изменить срок принудительного перехода на HTTPS; обновите до 8.11.0.

Проверено 3 ноября 2026Low по оценке проекта curl; это не оценка вероятности атаки на конкретный клиент.

Кому нужно проверить

Разработчикам и администраторам сервисов, использующих curl/libcurl для автоматических запросов, HSTS-кэш и несколько уровней одного домена. Важна не только марка продукта, но и конкретная версия, способ установки, операционная система и конфигурация.

В чём риск

Клиент мог неверно решить, когда преобразовывать HTTP в HTTPS. Запрос мог уйти по HTTP раньше ожидаемого или временно не пройти из-за слишком долгого срока. Это не доказывает компрометацию сервера.

Затронутые версии

Затронуты curl/libcurl 7.74.0–8.10.1 при включённом HSTS (HTTP Strict Transport Security — правило перехода с HTTP на HTTPS). Нужны записи обоих доменов в HSTS-кэше, обращения к x.example.com и example.com и URL со схемой HTTP. Заголовок Strict-Transport-Security от поддомена мог изменить срок родительской записи.

Исправленные версии

Исправлено в curl/libcurl 8.11.0. Пакет ОС может содержать backport, поэтому сверяйте статус исправления у поставщика.

Что сделать

  1. 1Проверьте версию curl, libcurl и факт включения HSTS в каждом рабочем окружении; системный curl не доказывает версию библиотеки приложения.
  2. 2Сделайте защищённую резервную копию HSTS-кэша и конфигурации, затем проверьте обновление на staging.
  3. 3Установите 8.11.0 или пакет с backport; статически собранное приложение пересоберите и подготовьте откат на исправленный образ.
  4. 4До обновления явно используйте HTTPS и не полагайтесь на HSTS-кэш как на единственную защиту. Отключение HSTS ослабляет защиту и не заменяет исправление.
  5. 5После обновления проверьте фактическую версию процесса и журналы; не публикуйте HSTS-файлы.

Как срок HSTS мог попасть не в ту запись

Ошибка проявляется только при сочетании нескольких условий.

  1. 1Клиент хранит записи HSTS для поддомена и родительского домена.
  2. 2Поддомен присылает новый срок Strict-Transport-Security.
  3. 3Срок ошибочно влияет на запись родительского домена.
  4. 4Следующий HTTP-запрос переходит на HTTPS слишком рано или поздно.

Примеры конфигурации и проверки

Проверить curl и возможности (shell)
curl -q --version

Запускайте локально без sudo. Команда не делает сетевой запрос и ничего не меняет. Наличие HSTS показывает возможность функции, но не доказывает, что её включает конкретное приложение.

Как не подпустить ботов к сайту

BotProtection принимает запросы перед вашим сайтом и фильтрует автоматизированные обращения. Поэтому ботам сложнее добраться до уязвимого компонента и начать его проверять или атаковать, а вероятность успешной автоматизированной атаки становится значительно ниже. Это дополнительный слой защиты: обновление уязвимых компонентов, проверка журналов и реагирование на инциденты остаются обязательными.

Первоисточники

Снизьте шанс атаки до того, как бот дойдёт до сайта

Подключите BotProtection как фильтр перед сайтом: подозрительные автоматизированные запросы отсекаются до обращения к вашему серверу. Это значительно снижает вероятность автоматизированной атаки, но не исправляет саму уязвимость, поэтому обновление и настройка компонентов остаются обязательными.