CVE-2024-8096
curl с GnuTLS: проверка OCSP могла пропустить ошибку сертификата
Проверьте curl/libcurl 7.41.0–8.9.1, собранные с GnuTLS, если приложение требует OCSP stapling. Некоторые ошибочные статусы могли быть приняты как успешные; обновитесь до 8.10.0.
Кому нужно проверить
Разработчикам и администраторам приложений с curl/libcurl, GnuTLS и OCSP stapling. Важна не только марка продукта, но и конкретная версия, способ установки, операционная система и конфигурация.
В чём риск
Приложение могло принять сертификат с отдельным проблемным OCSP-статусом. Advisory не утверждает обход всей обычной проверки цепочки для каждого соединения.
Затронутые версии
Затронуты curl/libcurl 7.41.0–8.9.1 только при сборке с GnuTLS и включённой проверке Certificate Status Request (OCSP stapling). Статусы, отличные от revoked, например unauthorized, могли не считаться ошибкой. Сборки с другими TLS-библиотеками по advisory не затронуты.
Исправленные версии
Исправлено в curl/libcurl 8.10.0. Альтернативы — патч или незатронутый TLS-backend; смена библиотеки требует проверки совместимости и доверенных сертификатов.
Что сделать
- 1Определите фактическую TLS-библиотеку процесса и место включения OCSP; системный curl может отличаться от встроенной libcurl.
- 2Сделайте резервную копию доверенных сертификатов и проверьте обновление на staging без отключения TLS-проверки.
- 3Установите 8.10.0 или пакет с backport, статические приложения пересоберите и подготовьте откат образа.
- 4До обновления ограничьте недоверенные TLS-обращения; не используйте --insecure как обход.
- 5После обновления подтвердите backend и проверьте журналы TLS; не публикуйте сертификаты и токены.
Где возникает ошибка OCSP
OCSP stapling — передача сервером статуса сертификата во время TLS.
- 1Сервер присылает сертификат и OCSP-статус.
- 2GnuTLS передаёт статус curl.
- 3Некоторые статусы ошибки ошибочно проходят.
- 4Исправленная libcurl отклоняет проблемный статус.
Примеры конфигурации и проверки
curl -q --versionЗапускайте без sudo. Вывод показывает библиотеку системного curl, не делает запрос и не меняет систему. Для встроенной libcurl нужна отдельная проверка сборки.
Как не подпустить ботов к сайту
BotProtection принимает запросы перед вашим сайтом и фильтрует автоматизированные обращения. Поэтому ботам сложнее добраться до уязвимого компонента и начать его проверять или атаковать, а вероятность успешной автоматизированной атаки становится значительно ниже. Это дополнительный слой защиты: обновление уязвимых компонентов, проверка журналов и реагирование на инциденты остаются обязательными.
Первоисточники
Снизьте шанс атаки до того, как бот дойдёт до сайта
Подключите BotProtection как фильтр перед сайтом: подозрительные автоматизированные запросы отсекаются до обращения к вашему серверу. Это значительно снижает вероятность автоматизированной атаки, но не исправляет саму уязвимость, поэтому обновление и настройка компонентов остаются обязательными.