CVE: CVE-2026-18924
Продукт: Ubuntu
Дата публикации: 06.09.2026
Критичность: CRITICAL
CVSS: 9.1 (3.1)
EPSS: 0,61%; процентиль 47,13%
CISA KEV: нет подтверждения в каталоге CISA KEV
Краткое описание
В libcurl обнаружена ошибка use-after-free, возникающая при обработке потоков HTTP/2 Server Push в режиме совместного использования соединений. Дефект затрагивает пакеты
curl и libcurl в нескольких версиях Ubuntu, включая LTS-релизы, поддерживаемые через ESM. В материале описана механика срабатывания, перечень уязвимых версий и порядок проверки состояния системы.Основные характеристики
Уязвимость связана с обращением к освобожденной памяти в клиентской библиотеке при специфической конфигурации обработки HTTP/2. Риск оценивается как критический из-за возможности удаленного воздействия без аутентификации.
- Классификация: CWE-416 (Use After Free). Ошибка возникает в процессе очистки ресурсов, связанных с потоками Server Push.
- CVSS 3.1: 9.1 (CRITICAL). Вектор:
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:H/A:H. Высокое влияние на целостность и доступность, отсутствие требований к привилегиям.
- EPSS: 0,61% (процентиль 47,13%). Вероятность эксплуатации в ближайшие 30 дней оценивается как низкая, но ненулевая.
- Статус: CVE находится в статусе «Undergoing Analysis». Публичный отчет на HackerOne подтверждает факт обнаружения и передачи информации разработчикам.
Какие продукты и версии затронуты
Уязвимость затрагивает исходный пакет
curl и связанные бинарные компоненты в нескольких версиях Ubuntu. Список включает текущие LTS-релизы и старые версии, поддерживаемые через Ubuntu Pro (ESM).- Ubuntu 26.04 LTS (resolute):
curl8.18.0-1ubuntu2.5,libcurl4t648.18.0-1ubuntu2.5,libcurl3t64-gnutls8.18.0-1ubuntu2.5.
- Ubuntu 24.04 LTS (noble):
curl8.5.0-2ubuntu10.13,libcurl4t648.5.0-2ubuntu10.13,libcurl3t64-gnutls8.5.0-2ubuntu10.13.
- Ubuntu 22.04 LTS (jammy):
curl7.81.0-1ubuntu1.27,libcurl47.81.0-1ubuntu1.27,libcurl3-gnutls7.81.0-1ubuntu1.27,libcurl3-nss7.81.0-1ubuntu1.27.
- Ubuntu 20.04 LTS (focal, ESM):
curl7.68.0-1ubuntu2.25+esm7 и связанные библиотеки.
- Ubuntu 18.04 LTS (bionic, ESM):
curl7.58.0-2ubuntu3.24+esm12 и связанные библиотеки.
- Ubuntu 16.04 LTS (xenial, ESM):
curl7.47.0-1ubuntu2.19+esm18 и связанные библиотеки.
- Ubuntu 14.04 LTS (trusty, ESM):
curl7.35.0-1ubuntu2.20+esm22 и связанные библиотеки.
Полный перечень бинарных пакетов и их статусов доступен в официальном отчете Ubuntu.
Причина уязвимости
Дефект связан с некорректным управлением жизненным циклом объектов в модуле обработки HTTP/2. Ошибка проявляется при работе с потоками Server Push, если родительский обработчик (handle) настроен на совместное использование соединений с другими обработчиками.
В процессе очистки (cleanup) ресурсов, ассоциированных с такими потоками, происходит обращение к памяти, которая уже была освобождена. Это классический сценарий use-after-free: указатель продолжает использоваться после вызова функции освобождения, что приводит к повреждению структуры данных или потенциальному выполнению произвольного кода.
Как работает атака
Атакующий взаимодействует с приложением, использующим уязвимую версию libcurl, через сетевой интерфейс. Для реализации атаки не требуется аутентификация или взаимодействие с пользователем.
Механизм срабатывания зависит от конфигурации приложения: родительский обработчик libcurl должен быть настроен на шаринг соединений. При обработке специально сформированного ответа сервера, содержащего потоки HTTP/2 Server Push, библиотека переходит к этапу очистки ресурсов. На этом этапе срабатывает ошибка use-after-free, что позволяет атакующему повлиять на состояние памяти процесса.
Условия успешной эксплуатации
Для успешной эксплуатации необходимо соблюдение ряда технических условий, связанных с конфигурацией приложения и сетевым окружением.
- Версия библиотеки: Приложение использует уязвимую версию libcurl, указанную в списке затронутых продуктов.
- Конфигурация libcurl: Родительский обработчик (parent handle) настроен на совместное использование соединений (share connections) с другими обработчиками.
- Поддержка HTTP/2: Приложение и сервер поддерживают протокол HTTP/2.
- Функция Server Push: Сервер отправляет потоки HTTP/2 Server Push, которые обрабатываются клиентской библиотекой.
Возможный сценарий атаки
Сценарий начинается с того, что уязвимое приложение инициирует соединение с удаленным сервером, поддерживающим HTTP/2. Атакующий контролирует этот сервер или перехватывает трафик, чтобы отправить специфический набор заголовков и данных Server Push.
При получении этих данных libcurl обрабатывает потоки. После завершения обработки или при закрытии соединения запускается процесс очистки ресурсов.
Из-за ошибки в управлении памятью при шаринге соединений происходит обращение к освобожденной памяти. Это может привести к падению приложения (отказ в обслуживании) или, в худшем случае, к выполнению кода атакующего в контексте процесса приложения.
Есть ли публичный эксплойт
Существует публичный отчет об уязвимости, опубликованный на платформе HackerOne (отчет 3916059). Это подтверждает, что уязвимость была обнаружена и передана разработчикам.
Статус CVE в NVD — «Undergoing Analysis», что означает, что окончательная оценка и детали могут быть уточнены. Наличие отчета на HackerOne свидетельствует о техническом описании и, вероятно, PoC (proof of concept), однако подтвержденная массовая эксплуатация в реальных атаках на данный момент не зафиксирована в каталоге CISA KEV.
Признаки эксплуатации
Специфические индикаторы компрометации (IOC) для этой уязвимости в предоставленных источниках не раскрыты. Ниже приведены общие, неспецифичные точки контроля, которые могут указывать на аномальную активность, связанную с использованием libcurl.
- Аномальные сетевые соединения: Необычные исходящие соединения из процессов, использующих libcurl, на нестандартные порты или IP-адреса.
- Сегфолты (Segfaults): Частые падения процессов с ошибками сегментации, особенно при обработке HTTP/2-трафика.
- Изменение целостности бинарников: Проверка контрольных сумм пакетов
curlиlibcurlна соответствие официальным репозиториям Ubuntu.
Как обнаружить атаку
Для обнаружения потенциальной эксплуатации или аномального поведения, связанного с CVE-2026-18924, рекомендуется использовать следующие методы мониторинга.
- Мониторинг журналов приложений: Анализ логов приложений, использующих libcurl, на предмет ошибок памяти, аварийных остановок или необычных сообщений об ошибках при обработке HTTP/2.
- Сетевой анализ: Использование IDS/IPS для отслеживания аномальных паттернов HTTP/2 Server Push, которые могут быть использованы для триггера уязвимости.
- Мониторинг целостности системы: Регулярная проверка установленных версий пакетов
curlиlibcurlна соответствие исправленным версиям.
Как проверить свою версию
Для проверки текущей версии установленных пакетов
curl и libcurl в системе Ubuntu используйте следующие команды. Замените <имя-пакета> на конкретное имя пакета (например, curl, libcurl4, libcurl3-gnutls), если требуется проверка конкретного компонента.
Bash:
# Проверка версии ОС
cat /etc/os-release
# Проверка версии ядра
uname -r
# Проверка версии установленного пакета curl
apt-cache policy curl
# Проверка статуса безопасности системы
ubuntu-security-status
Команда
apt-cache policy покажет установленную версию и доступные обновления в репозиториях. Если версия совпадает с одной из уязвимых, указанных в разделе «Какие продукты и версии затронуты», требуется обновление.Исправление
Основным и рекомендуемым методом устранения уязвимости является обновление пакетов
curl и связанных библиотек libcurl до исправленных версий, предоставленных в официальных репозиториях Ubuntu.- Для Ubuntu 22.04 LTS, 24.04 LTS и 26.04 LTS: Выполните стандартное обновление системы через
apt.
- Для Ubuntu 18.04 LTS, 20.04 LTS и более старых версий: Требуется активная подписка Ubuntu Pro (ESM) для получения обновлений безопасности. Убедитесь, что подписка активна, и выполните обновление.
Bash:
# Обновление пакетов
dpkg --list | grep curl
sudo apt update
sudo apt upgrade curl libcurl4 libcurl3-gnutls
После обновления перезапустите приложения, использующие libcurl, чтобы изменения вступили в силу.
Временные меры защиты
Пока обновление не установлено, можно рассмотреть следующие временные меры для снижения риска, хотя они не устраняют уязвимость полностью.
- Отключение HTTP/2: Если конфигурация приложения позволяет, отключите поддержку HTTP/2 в клиенте libcurl, чтобы избежать обработки потоков Server Push.
- Изоляция приложений: Ограничьте сетевой доступ для приложений, использующих уязвимую версию libcurl, только к доверенным серверам.
- Мониторинг: Усиленный мониторинг процессов, использующих libcurl, на предмет аномального поведения и падений.
Как проверить устранение уязвимости
После применения обновлений необходимо убедиться, что уязвимые версии пакетов более не установлены в системе.
- Проверка версий пакетов: Используйте команду
apt-cache policy curlи аналогичные для других пакетов libcurl, чтобы убедиться, что установлена версия, отличная от уязвимых.
- Проверка статуса безопасности: Выполните
ubuntu-security-statusдля подтверждения, что все известные уязвимости в системе устранены.
- Тестирование: Проведите функциональное тестирование приложений, использующих libcurl, для подтверждения корректной работы после обновления.
Вывод
CVE-2026-18924 представляет собой критическую уязвимость в libcurl, требующую оперативного внимания администраторов Ubuntu.
Несмотря на низкую текущую вероятность эксплуатации (EPSS 0,61%), высокий CVSS-скор (9.1) и возможность удаленного воздействия делают обновление пакетов приоритетной задачей.
Администраторам следует проверить версии установленных пакетов, применить доступные обновления и, при необходимости, временно ограничить использование HTTP/2 в критических приложениях до завершения патчинга.
Официальные источники
История обновлений статьи
- 10.09.2026 — Опубликована первая версия материала.
- 11.09.2026 — Уточнены сведения об уязвимых версиях, оценке риска или исправлении.
Последнее редактирование:
