CVE-2023-38039
libcurl: сервер мог исчерпать память клиента заголовками HTTP
Проверьте libcurl 7.84.0–8.2.1 при запросах к недоверенным HTTP-серверам. Поток заголовков мог исчерпать heap-память; в 8.3.0 добавлен лимит 300 КБ на ответ.
Кому нужно проверить
Разработчикам сервисов и агентов, использующих libcurl для внешних HTTP-запросов. Важна не только марка продукта, но и конкретная версия, способ установки, операционная система и конфигурация.
В чём риск
Сервер мог постепенно исчерпать память клиента и вызвать отказ процесса. Чтение или выполнение кода из advisory не следует.
Затронутые версии
libcurl сохраняла заголовки без общего ограничения числа и размера, поэтому сервер мог отправлять бесконечный поток. Первым затронутым выпуском считается 7.84.0, когда функция перестала быть экспериментальной.
Исправленные версии
Исправлено в libcurl 8.3.0: после 300 КБ заголовков возвращается ошибка.
Что сделать
- 1Инвентаризируйте все копии libcurl и запросы к пользовательским URL.
- 2Проверьте лимиты ответа и тайм-ауты в API приложения на staging.
- 3Обновите до 8.3.0 или исправленного пакета, пересоберите статические приложения.
- 4До обновления ограничьте недоверенные endpoints; это временное снижение риска.
- 5Проверьте потребление памяти и не пишите полные заголовки внешних ответов в публичные логи.
Как заголовки расходуют память
Каждый заголовок сохраняется до обработки приложением.
- 1Клиент подключается к HTTP-серверу.
- 2Сервер присылает много заголовков.
- 3libcurl сохраняет их без общего лимита.
- 4Процесс может исчерпать heap-память.
Примеры конфигурации и проверки
curl -q --versionRead-only команда без сетевого запроса; для встроенной libcurl требуется отдельная инвентаризация.
Как не подпустить ботов к сайту
BotProtection принимает запросы перед вашим сайтом и фильтрует автоматизированные обращения. Поэтому ботам сложнее добраться до уязвимого компонента и начать его проверять или атаковать, а вероятность успешной автоматизированной атаки становится значительно ниже. Это дополнительный слой защиты: обновление уязвимых компонентов, проверка журналов и реагирование на инциденты остаются обязательными.
Первоисточники
Снизьте шанс атаки до того, как бот дойдёт до сайта
Подключите BotProtection как фильтр перед сайтом: подозрительные автоматизированные запросы отсекаются до обращения к вашему серверу. Это значительно снижает вероятность автоматизированной атаки, но не исправляет саму уязвимость, поэтому обновление и настройка компонентов остаются обязательными.