CVE: CVE-2026-19931
Продукт: Ubuntu
Дата публикации: 06.09.2026
Критичность: CRITICAL
CVSS: 9.8 (3.1)
EPSS: 0,26%; процентиль 17,40%
CISA KEV: нет подтверждения в каталоге CISA KEV
Краткое описание
Уязвимость в libcurl позволяет злоумышленнику перехватить HTTP-запросы другого пользователя, если клиент повторно использует соединение с Negotiate-аутентификацией, инициализированное пустыми учётными данными. Для администраторов Ubuntu это означает риск компрометации корпоративных сессий в многопользовательских средах. Ниже описаны затронутые версии пакетов, механика ошибки и шаги по проверке и обновлению системы.
Основные характеристики
Риск связан с нарушением изоляции сессий при использовании libcurl: запрос одного пользователя может быть отправлен по уже аутентифицированному соединению другого, что ведёт к утечке данных и несанкционированному доступу. Критичность высока, так как атака возможна удалённо без предварительных привилегий.
- Тип ошибки: CWE-488 (неверная обработка аутентификационных данных) — libcurl некорректно управляет состоянием соединения при смене контекста пользователя.
- CVSS: 9.8 (CRITICAL), вектор
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H— удалённая атака с низким порогом сложности и полным воздействием на конфиденциальность, целостность и доступность.
- Условия атаки: Требуется, чтобы приложение использовало libcurl с Negotiate-аутентификацией и допускало повторное использование соединений между запросами разных пользователей.
- Факт эксплуатации: В каталоге CISA KEV подтверждений активной эксплуатации нет. EPSS составляет 0,26% (процентиль 17,4%), что указывает на низкую вероятность эксплуатации в ближайший год.
- Статус: CVE находится в статусе «Undergoing Analysis» в NVD, однако Ubuntu уже классифицировала её как «medium» и подготовила обновления.
Какие продукты и версии затронуты
Уязвимость затрагивает пакет
curl и связанные библиотеки libcurl в дистрибутивах Ubuntu. Ниже перечислены версии, которые содержат уязвимость и требуют обновления. Для LTS-релизов с поддержкой Ubuntu Pro обновления доступны через ESM-инфраструктуру.- Ubuntu 14.04 LTS (Pro):
curl7.35.0-1ubuntu2.20+esm22,libcurl3,libcurl3-gnutls,libcurl3-nss.
- Ubuntu 16.04 LTS (Pro):
curl7.47.0-1ubuntu2.19+esm18,libcurl3,libcurl3-gnutls,libcurl3-nss.
- Ubuntu 18.04 LTS (Pro):
curl7.58.0-2ubuntu3.24+esm12,libcurl3-gnutls,libcurl3-nss,libcurl4.
- Ubuntu 20.04 LTS (Pro):
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.
Обратите внимание, что на новых релизах (24.04 и 26.04) имена пакетов изменились на
libcurl3t64-gnutls и libcurl4t64.Причина уязвимости
Причина уязвимости кроется в логике повторного использования HTTP-соединений в libcurl. Библиотека кэширует установленные соединения для повышения производительности, но при использовании Negotiate-аутентификации некорректно обрабатывает смену контекста пользователя.
Если первый запрос к определённому хосту выполняется с пустыми учётными данными, libcurl может сохранить состояние соединения, ассоциированное с последующей аутентификацией другого пользователя. При повторном использовании этого соединения для запроса третьего пользователя данные могут быть отправлены в чужой аутентифицированный контекст. Это нарушает принцип изоляции сессий и позволяет злоумышленнику перехватить трафик, предназначенный для другого субъекта.
Как работает атака
Атака эксплуатирует механизм пула соединений (connection pooling) в libcurl. Злоумышленник, контролирующий приложение или среду, в которой работает libcurl, может инициировать запрос с пустыми учётными данными, а затем спровоцировать повторное использование этого соединения для запроса жертвы.
Поскольку Negotiate-аутентификация часто используется в корпоративных средах (Kerberos, NTLM), перехват чужой сессии позволяет злоумышленнику получить доступ к ресурсам, защищённым аутентификацией, без знания пароля жертвы. Механизм атаки не требует взлома самого libcurl, а использует его штатную, но ошибочную логику управления соединениями.
Условия успешной эксплуатации
Для успешной эксплуатации уязвимости необходимо соблюдение следующих условий:
- Приложение использует libcurl с поддержкой Negotiate-аутентификации.
- Приложение допускает повторное использование HTTP-соединений (connection reuse) между запросами.
- Существует возможность инициировать запрос с пустыми учётными данными к тому же хосту, что и запрос жертвы.
- Злоумышленник имеет контроль над порядком запросов или может влиять на выбор соединения в пуле.
Без этих условий эксплуатация невозможна, что объясняет оценку Ubuntu как «medium» при высоком CVSS.
Возможный сценарий атаки
Типичный сценарий: корпоративное приложение использует libcurl для доступа к внутреннему API с Negotiate-аутентификацией. Злоумышленник, имея доступ к приложению или сети, отправляет запрос с пустыми учётными данными. libcurl устанавливает соединение и кэширует его.
Затем, когда пользователь B выполняет запрос, libcurl повторно использует то же соединение, но с аутентификацией пользователя A (если та была ранее установлена в этом контексте). Запрос пользователя B уходит по чужой сессии, и злоумышленник получает доступ к данным пользователя A.
Есть ли публичный эксплойт
Публичный эксплойт в виде готового PoC или подтверждённой эксплуатации в реальных атаках в доступных источниках не указан. Ссылка на HackerOne указывает на то, что уязвимость была обнаружена через программу bug bounty, но детали отчёта не раскрыты публично. Отсутствие сведений о PoC не означает, что эксплойт не существует, но подтверждённых данных о его использовании в дикой природе нет.
Признаки эксплуатации
Специфичные IOC (индикаторы компрометации) для CVE-2026-19931 в официальных источниках не опубликованы. Ниже приведены неспецифичные точки контроля, которые могут помочь в обнаружении аномальной активности:
- Необычные паттерны в HTTP-журналах: запросы от одного IP-адреса с разными заголовками Authorization, но с одинаковым идентификатором соединения (если логируются).
- Аномальные задержки или повторные попытки аутентификации с пустыми учётными данными.
- Журналы аудита приложений, использующих libcurl: поиск записей о повторном использовании соединений между разными пользователями.
Эти признаки не являются доказательством эксплуатации, но могут указывать на подозрительное поведение.
Как обнаружить атаку
Для обнаружения атаки рекомендуется:
- Включить подробное логирование в приложениях, использующих libcurl, с фиксацией идентификаторов соединений и пользователей.
- Настроить мониторинг HTTP-трафика на уровне прокси или балансировщика нагрузки, отслеживая аномальные паттерны аутентификации.
- Использовать инструменты SIEM для корреляции событий аутентификации и доступа к ресурсам, выявляя случаи, когда один пользователь получает доступ к данным другого.
- Проверять журналы Kerberos (если используется) на аномальные TGT/TGS-запросы, связанные с повторным использованием сессий.
Как проверить свою версию
Для проверки версии установленного пакета
curl и связанных библиотек в Ubuntu используйте следующие команды. Замените <имя-пакета> на конкретное имя пакета (например, curl, libcurl4, libcurl3t64-gnutls), если нужно проверить конкретный компонент.
Bash:
cat /etc/os-release
uname -r
apt-cache policy <имя-пакета>
ubuntu-security-status
Команда
apt-cache policy покажет установленную и доступную версию пакета. Если установленная версия совпадает с одной из уязвимых, перечисленных выше, требуется обновление.Исправление
Основное средство устранения — обновление пакета
curl и связанных библиотек до исправленных версий. Для Ubuntu 22.04 LTS и новее обновления доступны через стандартные репозитории. Для LTS-релизов с поддержкой Ubuntu Pro (14.04–20.04) обновления доступны через ESM-инфраструктуру.- Ubuntu 22.04 LTS и новее:
Bash:sudo apt update sudo apt upgrade curl libcurl4 libcurl3t64-gnutls - Ubuntu 14.04–20.04 LTS (Pro):
Bash:sudo apt update sudo apt upgrade curl libcurl3 libcurl3-gnutls libcurl3-nss libcurl4
После обновления перезапустите приложения, использующие libcurl, чтобы они подхватили новую версию библиотеки.
Временные меры защиты
Пока обновление не установлено, можно применить следующие временные меры:
- Отключить повторное использование соединений в libcurl, если это позволяет конфигурация приложения (например, через параметр
CURLOPT_FORBID_REUSEили аналогичные настройки).
- Ограничить использование Negotiate-аутентификации в приложениях, где это возможно, заменив её на более безопасные методы (например, Bearer-токены).
- Разделить приложения по пользователям или процессам, чтобы избежать общего пула соединений.
- Усилить мониторинг HTTP-трафика для выявления аномальной активности.
Эти меры снижают риск, но не устраняют уязвимость полностью.
Как проверить устранение уязвимости
После обновления проверьте, что все пакеты обновлены до исправленных версий:
Bash:
apt-cache policy curl libcurl4 libcurl3t64-gnutls
Убедитесь, что версия пакета не совпадает с уязвимой. Также проверьте, что приложения, использующие libcurl, перезапущены и используют новую версию библиотеки. Для этого можно проверить загрузку библиотеки в процессе:
Bash:
lsof -p <PID> | grep libcurl
Если версия в выводе совпадает с уязвимой, перезапустите приложение.
Вывод
CVE-2026-19931 представляет серьёзный риск для систем, использующих libcurl с Negotiate-аутентификацией и повторным использованием соединений. Хотя Ubuntu классифицировала её как «medium», высокий CVSS и потенциальный ущерб требуют оперативного обновления. Администраторам следует проверить версии пакетов, применить обновления и усилить мониторинг до тех пор, пока все системы не будут приведены в безопасное состояние.
Официальные источники
История обновлений статьи
- 09.09.2026 — Опубликована первая версия материала.
