CVE-2023-27536
libcurl и Kerberos: смена делегирования прав не учитывалась при повторном соединении
Проверьте корпоративные интеграции с libcurl 7.22.0–7.88.1, Kerberos и изменяемым CURLOPT_GSSAPI_DELEGATION. Повторная передача могла использовать соединение с прежними условиями делегирования прав; исправлено в 8.0.0.
Кому нужно проверить
Администраторам корпоративного единого входа и разработчикам интеграций, где сервер получает возможность действовать от имени пользователя. Владельцу сайта полезно выяснить, есть ли такой механизм в фоновых заданиях и внутренних сервисах. Важна не только марка продукта, но и конкретная версия, способ установки, операционная система и конфигурация.
В чём риск
Делегирование означает передачу серверу возможности обращаться к следующему сервису от имени пользователя. Программа может разрешать его для одной операции и запрещать для другой. Уязвимая libcurl не учитывала изменение этой настройки при выборе сохранённого соединения. В результате условия прав второй передачи могли отличаться от ожидаемых. Это не означает автоматическую кражу всех паролей или получение прав администратора домена.
Затронутые версии
Затронуты libcurl 7.22.0–7.88.1 при krb5/Kerberos/Negotiate/GSSAPI-передачах и повторном использовании соединения после смены CURLOPT_GSSAPI_DELEGATION. Kerberos — система подтверждения личности в корпоративной сети; GSSAPI — программный интерфейс таких механизмов. Само наличие Kerberos в организации не доказывает применимость ошибки.
Исправленные версии
Ошибка исправлена в curl/libcurl 8.0.0. Выбирайте актуальный поддерживаемый пакет с этим исправлением, а не обязательно исторический релиз 8.0.0. У поставщика ОС уточните backport: исправление может быть перенесено в пакет с меньшим основным номером версии.
Что сделать
- 1Уточните у разработчика, использует ли приложение libcurl и Kerberos/Negotiate, и найдите настройку CURLOPT_GSSAPI_DELEGATION. Не выгружайте билеты Kerberos, ключи и содержимое служебных хранилищ в журналы или обращения поддержки.
- 2Проверьте, меняется ли эта настройка между передачами, использующими общие соединения. Версию библиотеки берите из сборки приложения или его диагностических сведений, а не только из системного curl.
- 3Сохраните конфигурацию интеграции и план восстановления доступа. На отдельном тестовом окружении проверьте обновление с тестовыми пользователями: успешный вход и отказ там, где делегирование запрещено.
- 4Обновите приложение или libcurl до поддерживаемой сборки с исправлением. Пересоберите статически связанные приложения и согласуйте перезапуск служб.
- 5Проект предлагает до исправления не использовать CURLOPT_GSSAPI_DELEGATION. Применимость такого изменения согласуйте с администратором единого входа: доступ к следующему сервису может перестать работать. Это временное ограничение, а не исправление старой библиотеки.
- 6После развертывания проверьте работу от имени тестового пользователя и отсутствие лишних прав у следующего сервиса. Для отката храните настройки и сборку; если возвращается уязвимая версия, сохраняйте отключённым затронутый сценарий делегирования.
Как сохранялись прежние условия делегирования
Это статичный нумерованный текст: движение, интерактивное управление и отдельная версия для reduced motion не нужны. Команда не приводится, поскольку просмотр системного curl не проверит политику делегирования приложения; безопасная альтернатива — разбор настройки и тест с отдельными пользователями по шагам выше.
- 1Первый запрос открывает соединение с выбранным делегированием.
- 2Программа меняет правило делегирования для второй операции.
- 3Старая libcurl повторно использует соединение, не сравнив это правило.
- 4Вторая операция получает неожиданные условия прав.
- 5Исправленная версия сравнивает настройку делегирования.
Как не подпустить ботов к сайту
BotProtection принимает запросы перед вашим сайтом и фильтрует автоматизированные обращения. Поэтому ботам сложнее добраться до уязвимого компонента и начать его проверять или атаковать, а вероятность успешной автоматизированной атаки становится значительно ниже. Это дополнительный слой защиты: обновление уязвимых компонентов, проверка журналов и реагирование на инциденты остаются обязательными.
Первоисточники
Снизьте шанс атаки до того, как бот дойдёт до сайта
Подключите BotProtection как фильтр перед сайтом: подозрительные автоматизированные запросы отсекаются до обращения к вашему серверу. Это значительно снижает вероятность автоматизированной атаки, но не исправляет саму уязвимость, поэтому обновление и настройка компонентов остаются обязательными.