CVE-2024-2379
libcurl с wolfSSL: ошибка QUIC могла пропустить проверку сертификата
Проверьте curl/libcurl 8.6.0, если сборка использует wolfSSL и HTTP/3/QUIC. При ошибочном имени шифра или группы кривых путь обработки ошибки мог пропустить проверку сертификата; исправлено в 8.7.0.
Кому нужно проверить
Разработчикам и администраторам приложений на libcurl, использующих HTTP/3/QUIC и wolfSSL. Важна не только марка продукта, но и конкретная версия, способ установки, операционная система и конфигурация.
В чём риск
При совпадении всех условий libcurl мог принять соединение, не выполнив ожидаемую проверку проблем сертификата. Уязвимость не относится автоматически ко всем приложениям с curl или wolfSSL.
Затронутые версии
Затронут curl/libcurl 8.6.0, собранный с wolfSSL, при использовании QUIC (основа HTTP/3), если wolfSSL дополнительно собран с OPENSSL_COMPATIBLE_DEFAULTS и задан неизвестный или неподходящий cipher либо curve. Advisory уточняет, что этот параметр wolfSSL не включён в рекомендованной конфигурации configure --enable-curl. Версии curl до 8.6.0 и начиная с 8.7.0 не затронуты.
Исправленные версии
Исправлено в curl/libcurl 8.7.0. Для сборок поставщика проверьте фактический wolfSSL и его параметры; дистрибутив мог перенести исправление отдельно.
Что сделать
- 1Определите версию и TLS-библиотеку именно той libcurl, которую использует приложение; уточните у сборщика, включён ли OPENSSL_COMPATIBLE_DEFAULTS в wolfSSL.
- 2Сохраните сборочную конфигурацию и образ приложения; проверьте новую сборку на staging с обычным HTTP/3 трафиком и ожидаемыми ошибками TLS.
- 3Обновите libcurl до 8.7.0 или установите исправленный пакет поставщика. Пересоберите приложения со статически включённой уязвимой библиотекой.
- 4До обновления отключите использование HTTP/3 в затронутой конфигурации, если это поддерживает приложение. Не отключайте проверку сертификатов; временная мера не исправляет библиотеку.
- 5После обновления проверьте выбранный TLS-backend и журналы TLS. Откат допускайте только на сборку, в которой исправление подтверждено.
Условия пропуска проверки сертификата
Риск возникает только при сочетании версии, TLS-библиотеки, параметров сборки и QUIC.
- 1Приложение использует libcurl 8.6.0 и QUIC.
- 2Сборка libcurl использует wolfSSL с указанной настройкой.
- 3Возникает ошибка при выборе cipher или curve.
- 4Уязвимая обработка ошибки возвращает успех без проверки сертификата.
Примеры конфигурации и проверки
curl -q --versionRead-only команда для терминала Linux/macOS без sudo и сетевых запросов. Она показывает библиотеки и протоколы, собранные в данном CLI. Наличие строки wolfSSL или HTTP/3 помогает определить, что уточнять, но не подтверждает наличие OPENSSL_COMPATIBLE_DEFAULTS и не описывает встроенную libcurl приложения. Изменений нет, откат не нужен.
Как не подпустить ботов к сайту
BotProtection принимает запросы перед вашим сайтом и фильтрует автоматизированные обращения. Поэтому ботам сложнее добраться до уязвимого компонента и начать его проверять или атаковать, а вероятность успешной автоматизированной атаки становится значительно ниже. Это дополнительный слой защиты: обновление уязвимых компонентов, проверка журналов и реагирование на инциденты остаются обязательными.
Первоисточники
Снизьте шанс атаки до того, как бот дойдёт до сайта
Подключите BotProtection как фильтр перед сайтом: подозрительные автоматизированные запросы отсекаются до обращения к вашему серверу. Это значительно снижает вероятность автоматизированной атаки, но не исправляет саму уязвимость, поэтому обновление и настройка компонентов остаются обязательными.