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

CVE-2024-2004

curl --proto: отключённый протокол мог остаться разрешённым

Проверьте curl/libcurl 7.85.0–8.6.0 в скриптах, которые задают параметр --proto или CURLOPT_PROTOCOLS_STR и отключают все протоколы. В этом необычном случае набор по умолчанию оставался разрешённым; исправлено в 8.7.0.

Проверено 6 ноября 2026Low по оценке проекта curl; авторы отмечают, что проблемное сочетание параметров само по себе практически не используется.

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

Сопровождающим скрипты и приложения, которые программно формируют список разрешённых протоколов curl. Важна не только марка продукта, но и конкретная версия, способ установки, операционная система и конфигурация.

В чём риск

В описанном редком случае логика могла оставить протоколы по умолчанию разрешёнными, несмотря на попытку отключить их все. Это не означает, что любой запуск curl с --proto уязвим; важна точная конфигурация.

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

Затронуты curl/libcurl 7.85.0–8.6.0, если настройка выбора протоколов отключает все протоколы и не добавляет разрешённых. Именно такое сочетание проект curl считает маловероятным на практике. Уязвимость доступна и через CLI, и через API libcurl.

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

Исправлено в curl/libcurl 8.7.0. Проверьте у поставщика ОС, не выпущен ли backport для установленного пакета.

Что сделать

  1. 1Найдите скрипты и код приложения, где формируются --proto, --proto-redir или CURLOPT_PROTOCOLS_STR. Не запускайте найденные команды на производственных целях ради проверки.
  2. 2Проверьте логику формирования списка: конфигурация должна явно разрешать нужные протоколы, а не пытаться получить пустой набор.
  3. 3Проверьте обновление curl/libcurl на тестовом окружении и установите версию 8.7.0 или пакет с исправлением поставщика.
  4. 4Если обновление временно невозможно, измените конфигурацию так, чтобы она явно включала только необходимые протоколы, и отдельно протестируйте перенаправления. Это временная мера, не замена обновлению.
  5. 5После развертывания проверьте код возврата для разрешённого и запрещённого протокола на контролируемом тесте; сохраните возможность отката конфигурации.

Почему важен именно пустой набор протоколов

Ошибка связана не с любым запретом протокола, а с обработкой конфигурации, где отключены все варианты.

  1. 1Скрипт задаёт список разрешённых протоколов.
  2. 2В редком случае список исключает все протоколы.
  3. 3Уязвимая версия оставляет набор по умолчанию.
  4. 4Исправленная версия сохраняет пустой набор и блокирует запрос.

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

Найти место установки curl в окружении (shell)
command -v curl

Read-only команда оболочки для Linux/macOS, не требует повышенных прав и не выполняет сетевых запросов. Выводит путь к исполняемому файлу, который будет найден через PATH; это не выявляет все копии curl и не проверяет параметры в скриптах. Изменений нет, откат не требуется. Затем изучите найденные скрипты вручную и не запускайте непроверенные команды.

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

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

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

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

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