CVE: CVE-2026-19931
Продукт: Ubuntu
Дата публикации: 06.09.2026
Критичность: CRITICAL
CVSS: 9.8 (3.1)
EPSS: 0,79%; процентиль 54,07%
CISA KEV: нет подтверждения в каталоге CISA KEV
Краткое описание
Ошибка в libcurl приводит к тому, что HTTP-запрос одного пользователя может быть отправлен по ранее аутентифицированному соединению другого пользователя, если первый запрос выполнялся с пустыми учётными данными. Уязвимость затрагивает пакет
curl в нескольких LTS-релизах Ubuntu. Ниже описаны механика нарушения, затронутые версии и порядок проверки исправления.Основные характеристики
Риск заключается в нарушении изоляции сетевых сессий: данные пользователя B могут быть переданы по каналу, аутентифицированному под пользователем A. Это ведёт к компрометации конфиденциальности и целостности данных.
- Классификация: CWE-488 (эскалация привилегий через неправильную проверку).
- CVSS 3.1: 9.8 (CRITICAL), вектор
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H.
- EPSS: 0,79% (процентиль 54,07%). Значение отражает вероятность эксплуатации в ближайшие 30 дней.
- Статус: CVE находится в статусе «Undergoing Analysis». Эксплуатация в реальных атаках не подтверждена в CISA KEV.
Какие продукты и версии затронуты
Уязвимость затрагивает пакет
curl и связанные библиотеки в следующих версиях Ubuntu. Для ESM-релизов обновления доступны только при активной подписке Ubuntu Pro.- Ubuntu 14.04 LTS (ESM):
curl7.35.0-1ubuntu2.20+esm22,libcurl3,libcurl3-gnutls,libcurl3-nss.
- Ubuntu 16.04 LTS (ESM):
curl7.47.0-1ubuntu2.19+esm18,libcurl3,libcurl3-gnutls,libcurl3-nss.
- Ubuntu 18.04 LTS (ESM):
curl7.58.0-2ubuntu3.24+esm12,libcurl3-gnutls,libcurl3-nss,libcurl4.
- Ubuntu 20.04 LTS (ESM):
curl7.68.0-1ubuntu2.25+esm7,libcurl3-gnutls,libcurl3-nss,libcurl4.
- Ubuntu 22.04 LTS:
curl7.81.0-1ubuntu1.27,libcurl3-gnutls,libcurl3-nss,libcurl4.
- Ubuntu 24.04 LTS:
curl8.5.0-2ubuntu10.13,libcurl3t64-gnutls,libcurl4t64.
- Ubuntu 26.04 LTS:
curl8.18.0-1ubuntu2.5,libcurl3t64-gnutls,libcurl4t64.
Причина уязвимости
Причина уязвимости лежит в логике переиспользования HTTP-соединений в libcurl. Библиотека некорректно обрабатывает сценарий, когда первый запрос к хосту выполняется с пустыми учётными данными (empty credentials) для аутентификации Negotiate.
Вместо создания нового соединения или сброса состояния аутентификации, libcurl ошибочно переиспользует ранее настроенное соединение, аутентифицированное под другим пользователем. Это нарушает границу доверия между сессиями: данные пользователя B могут быть отправлены по каналу, аутентифицированному под пользователем A.
Как работает атака
Атакующий инициирует запрос к целевому хосту с пустыми учётными данными. Если ранее другой пользователь успешно аутентифицировался на этом хосте через Negotiate, libcurl может ошибочно привязать новый запрос к существующему аутентифицированному соединению.
В результате запрос атакующего обрабатывается сервером в контексте сессии жертвы. Это позволяет злоумышленнику читать конфиденциальные данные, отправлять команды от имени жертвы или изменять состояние ресурсов, к которым у жертвы есть доступ, но которые недоступны атакующему напрямую.
Условия успешной эксплуатации
Для успешной эксплуатации необходимо соблюдение следующих условий:
- Целевая система использует libcurl с поддержкой аутентификации Negotiate.
- На целевом хосте ранее была установлена аутентифицированная сессия под учётными данными другого пользователя.
- Атакующий имеет возможность инициировать HTTP-запрос к тому же хосту с пустыми учётными данными.
- В libcurl не применён патч, исправляющий логику переиспользования соединений.
Возможный сценарий атаки
Пользователь A выполняет запрос к внутреннему API с аутентификацией Negotiate. Соединение устанавливается и сохраняется в пуле соединений libcurl.
Затем пользователь B (или атакующий, действующий от его имени) инициирует запрос к тому же хосту, но с пустыми учётными данными. Из-за ошибки в libcurl библиотека не создаёт новое соединение, а переиспользует сессию пользователя A.
Сервер получает запрос, который формально выглядит как запрос пользователя B, но фактически обрабатывается в контексте аутентификации пользователя A. Атакующий получает доступ к данным или функциям, привязанным к сессии A.
Есть ли публичный эксплойт
Существует публичный PoC, опубликованный через HackerOne (отчёт 3923520). Техническое описание атаки доступно в документации curl. Эксплуатация в реальных атаках не зафиксирована в CISA KEV, однако наличие публичного PoC повышает риск целевых атак.
Признаки эксплуатации
Специфичные IOC для CVE-2026-19931 не опубликованы. Для обнаружения атаки можно использовать неспецифичные признаки:
- Необычные HTTP-запросы к внутренним сервисам с пустыми заголовками Authorization.
- Сопоставление журналов аутентификации: запросы, которые не соответствуют ожидаемому профилю поведения пользователя, но обрабатываются в контексте его сессии.
- Аномальные всплески трафика к API, использующим Negotiate, особенно если источник запроса не имеет прямых прав доступа.
Как обнаружить атаку
Для обнаружения эксплуатации уязвимости рекомендуется:
- Анализировать логи веб-сервера и прокси на предмет запросов с пустыми учётными данными к хостам, где ранее была аутентификация Negotiate.
- Использовать SIEM для корреляции событий: совпадение времени запроса с пустыми credentials и успешной аутентификации другого пользователя на том же хосте.
- Мониторить журналы libcurl (если включено логирование) на предмет переиспользования соединений, где не было явного обновления аутентификации.
Как проверить свою версию
Для проверки версии установленного пакета
curl и наличия исправлений используйте следующие команды:
Bash:
cat /etc/os-release
uname -r
apt-cache policy curl
ubuntu-security-status
Команда
ubuntu-security-status покажет, есть ли доступные обновления безопасности для системы. Для ESM-релизов убедитесь, что подписка Ubuntu Pro активна.Исправление
Единственный надёжный способ устранения уязвимости — обновление пакета
curl и связанных библиотек до версий, содержащих исправление. Для Ubuntu это означает применение обновлений из официальных репозиториев:- Для Ubuntu 22.04 LTS, 24.04 LTS и 26.04 LTS: выполните
sudo apt update && sudo apt upgrade.
- Для версий с ESM (14.04, 16.04, 18.04, 20.04): убедитесь, что подписка Ubuntu Pro активна, и примените обновления через
sudo apt update && sudo apt upgrade.
После обновления перезапустите службы, использующие libcurl, чтобы изменения вступили в силу.
Временные меры защиты
Пока обновление не применено, можно снизить риск следующими мерами:
- Отключите переиспользование соединений в libcurl, если это возможно через конфигурацию приложения (например, параметр
CURLOPT_FORBID_REUSEв API).
- Ограничьте доступ к внутренним API, использующим Negotiate, по IP-адресам или через VPN.
- Убедитесь, что приложения не передают пустые учётные данные для аутентификации Negotiate, если это не требуется.
- Временно отключите поддержку Negotiate в libcurl, если это допустимо для ваших сценариев.
Как проверить устранение уязвимости
После применения обновлений проверьте, что уязвимость устранена:
- Убедитесь, что версия пакета
curlсоответствует исправленной (см. официальный отчёт Ubuntu).
- Выполните тестовый запрос с пустыми учётными данными к хосту, где ранее была аутентификация Negotiate, и убедитесь, что соединение не переиспользуется (например, через логи libcurl или Wireshark).
- Проверьте, что
ubuntu-security-statusне показывает уязвимостей для пакетаcurl.
Вывод
CVE-2026-19931 представляет серьёзную угрозу для систем, использующих libcurl с аутентификацией Negotiate. Уязвимость позволяет нарушить изоляцию сессий и получить доступ к данным других пользователей.
Приоритетное обновление пакетов
curl и libcurl до исправленных версий является обязательным. Временные меры, такие как отключение переиспользования соединений, могут снизить риск, но не заменяют патч.Официальные источники
История обновлений статьи
- 09.09.2026 — Опубликована первая версия материала.
- 11.09.2026 — Уточнены сведения об уязвимых версиях, оценке риска или исправлении.
Последнее редактирование:
