CVE-2023-38545
CVE-2023-38545: переполнение буфера SOCKS5 в curl и libcurl
Проблема затрагивает libcurl 7.69.0–8.3.0 при использовании SOCKS5 с передачей имени хоста прокси и подходящих условиях буфера/медленного handshake. Обновите curl/libcurl минимум до 8.4.0 или проверьте исправление поставщика пакета.
Кому нужно проверить
Администраторам серверов и разработчикам приложений, использующих curl/libcurl через SOCKS5 с удалённым разрешением имён; DevOps и владельцам системных пакетов. Важна не только марка продукта, но и конкретная версия, способ установки, операционная система и конфигурация.
В чём риск
При выполнении условий ошибка может привести к переполнению heap в процессе клиента. Вариант воздействия зависит от приложения и контекста запуска; само наличие curl в системе не доказывает уязвимость.
Затронутые версии
libcurl 7.69.0–8.3.0 включительно. Условия: удалённое разрешение имени через SOCKS5 (socks5h:// или CURLPROXY_SOCKS5_HOSTNAME), имя длиннее 255 байт и достаточно медленное согласование. Для переполнения heap также важен размер буфера; curl CLI обычно не уязвим при стандартном размере, но ограничение скорости может уменьшить буфер. Другие приложения на libcurl проверяйте отдельно.
Исправленные версии
Исправлено в curl/libcurl 8.4.0 upstream. Для системных пакетов используйте обновление поставщика ОС: Ubuntu сообщает, например, исправленные пакеты 8.2.1-1ubuntu3.1 для 24.04/23.10, 7.88.1-8ubuntu2.3 для 23.04 и 7.81.0-1ubuntu1.14 для 22.04. Пакетная версия с backport может быть ниже 8.4.0.
Что сделать
- 1Установите, какой компонент и пакет используется: curl CLI, libcurl, контейнерный образ или встроенная библиотека приложения; проверьте версии в среде выполнения, а не только на хосте.
- 2Обновите пакет до исправленного релиза поставщика (upstream 8.4.0 или новее) и пересоберите приложения, статически включающие старую libcurl. Сверьте backport с advisory ОС.
- 3До обновления временно исключите SOCKS5 с удалённым разрешением имени (socks5h://, --socks5-hostname, CURLPROXY_SOCKS5_HOSTNAME) либо используйте локальное разрешение имени, если архитектура и политика сети это допускают.
- 4После обновления проверьте lockfile/образ и фактическую динамически загруженную библиотеку, а также обычные сетевые сценарии приложения. Не проверяйте уязвимость специально сформированными длинными hostname на продуктивном сервисе.
Как не подпустить ботов к сайту
BotProtection принимает запросы перед вашим сайтом и фильтрует автоматизированные обращения. Поэтому ботам сложнее добраться до уязвимого компонента и начать его проверять или атаковать, а вероятность успешной автоматизированной атаки становится значительно ниже. Это дополнительный слой защиты: обновление уязвимых компонентов, проверка журналов и реагирование на инциденты остаются обязательными.
Первоисточники
Снизьте шанс атаки до того, как бот дойдёт до сайта
Подключите BotProtection как фильтр перед сайтом: подозрительные автоматизированные запросы отсекаются до обращения к вашему серверу. Это значительно снижает вероятность автоматизированной атаки, но не исправляет саму уязвимость, поэтому обновление и настройка компонентов остаются обязательными.