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

CVE-2023-27535

libcurl FTP: новая передача могла использовать прежние учётные настройки

Если приложение по очереди передаёт файлы с разными настройками FTP, проверьте libcurl 7.13.0–7.88.1. Библиотека могла использовать уже открытое соединение, не учтя смену важных параметров; исправление появилось в 8.0.0.

Проверено 6 ноября 2026Medium (средняя) по качественной шкале проекта curl. Это оценка тяжести ошибки, а не вероятность атаки на конкретную систему.

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

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

В чём риск

Чтобы не входить на сервер заново при каждой передаче, libcurl сохраняет открытые соединения в общем наборе. Уязвимая версия сравнивала не все настройки. Поэтому вторая операция могла пройти с прежними учётными данными. Какие файлы окажутся доступны, зависит от прав этой учётной записи на FTP-сервере; ошибка сама по себе не даёт права администратора сервера.

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

Затронуты libcurl 7.13.0–7.88.1 при повторном использовании FTP-соединения и изменении CURLOPT_FTP_ACCOUNT, CURLOPT_FTP_ALTERNATIVE_TO_USER, CURLOPT_FTP_SSL_CCC либо уровня CURLOPT_USE_SSL. FTP — протокол передачи файлов. Ошибка относится к подбору подходящего ранее открытого соединения, а не к любому входу на FTP-сервер.

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

Первое исправление проекта — curl/libcurl 8.0.0. Это историческая граница исправления данной ошибки, а не рекомендация установить старый релиз сегодня. Выберите поддерживаемый исправленный пакет вашего поставщика. Backport — перенос исправления в более старую ветку — может сохранять прежний основной номер версии.

Что сделать

  1. 1Составьте список программ, которые отправляют или получают файлы по FTP. Уточните версию libcurl внутри каждой программы и её контейнера. Номер системной команды curl не доказывает версию библиотеки программы.
  2. 2Попросите разработчика проверить четыре перечисленных параметра и общий набор соединений. Важен переход от одной конфигурации к другой: отдельный запрос с неизменными настройками не подтверждает этот сценарий. Не копируйте пароли и полные адреса с учётными данными в заявку поддержки.
  3. 3Сохраните настройки заданий и защищённую резервную копию данных, которые они изменяют. На тестовом окружении, то есть отдельной копии системы, проверьте обновление с вымышленными файлами и тестовыми учётными записями разных прав.
  4. 4Установите поддерживаемый пакет с исправлением или обновите приложение у его поставщика. Если libcurl включена непосредственно в исполняемый файл, разработчик должен пересобрать приложение. Согласуйте перезапуск, чтобы процессы перестали использовать старую библиотеку.
  5. 5Если обновление задерживается, временно приостановите задания, меняющие эти параметры на общих соединениях. Это редакционная мера ограничения использования, а не опубликованный проектом универсальный обход. Она нарушит обмен файлами, поэтому согласуйте простой с владельцем процесса.
  6. 6После обновления проверьте, от чьего имени проходят передачи, какие файлы доступны и нет ли лишних операций в журналах FTP. Подготовьте откат приложения и настроек; при возврате уязвимой сборки оставьте рискованные задания остановленными до восстановления исправленной версии.

Почему смена настроек не всегда означала новый вход

Статичная текстовая схема объясняет последовательность. Она не использует движение или цветовые обозначения; при reduced motion выглядит так же. Кодовый пример не добавлен: универсальная команда не проверит общий набор соединений чужого приложения. Вместо неё выше перечислены конкретные параметры для проверки разработчиком.

  1. 1Программа открывает FTP-соединение с первым набором настроек.
  2. 2Следующее задание задаёт другие учётные или TLS-параметры.
  3. 3Старая libcurl ошибочно считает прежнее соединение подходящим.
  4. 4Передача проходит с прежними учётными данными.
  5. 5Исправление добавляет недостающие сравнения параметров.

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

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

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

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

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