CVE: CVE-2026-72491
Продукт: Debian
Дата публикации: 15.08.2026
Критичность: CRITICAL
CVSS: 9.8 (3.1)
EPSS: 0,72%; процентиль 51,12%
CISA KEV: нет подтверждения в каталоге CISA KEV
Краткое описание
В ядре Linux для Debian обнаружена критическая уязвимость в модуле 9p (trans_rdma.c), связанная с нарушением синхронизации при изменении состояния RDMA-соединений. Ошибка позволяет нарушить целостность конечного автомата и вызвать use-after-free. Статья описывает механизм атаки, затронутые версии пакетов
linux и порядок применения исправлений.Основные характеристики
Уязвимость представляет собой гонку (race condition) в ядре Linux, затрагивающую реализацию протокола 9p с использованием RDMA. Ошибка нарушает правила блокировки при изменении состояния соединения, что может привести к повреждению памяти и потере целостности данных.
- Тип ошибки: Race condition (гонка состояний) в
trans_rdma.c.
- 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.
- Условия атаки: Сеть (Network), низкая сложность, отсутствие необходимости в привилегиях и взаимодействии пользователя.
- Эксплуатация: В каталоге CISA KEV подтверждений о массовой эксплуатации не зафиксировано.
- EPSS: 0,72% (процентиль 51,12%). Вероятность эксплуатации в ближайшие 30 дней оценивается как низкая.
Какие продукты и версии затронуты
Уязвимость затрагивает пакет
linux в дистрибутивах Debian. Все перечисленные ниже версии содержат ошибку до момента выпуска соответствующих обновлений безопасности.- Debian 12 (bookworm): Уязвима версия
6.1.176-1. Исправление доступно в6.1.180-1(репозиторийbookworm-security).
- Debian 11 (bullseye): Уязвима версия
5.10.223-1. Исправление доступно в5.10.262-1(репозиторийbullseye-security).
- Debian 13 (trixie): Уязвима версия
6.12.94-1. Исправление доступно в6.12.107-1(репозиторийtrixie-security).
- Debian (forky): Уязвима версия
7.1.8-2. Исправление доступно в7.1.5-1.
- Debian (sid/unstable): Уязвима версия
7.1.12-1. Исправление доступно в7.1.5-1.
Причина уязвимости
Причина уязвимости кроется в некорректной синхронизации доступа к полю
rdma->state в файле net/9p/trans_rdma.c. Функция rdma_request() использует спинлок req_lock для защиты операций чтения и записи состояния, однако другие функции изменяют это поле без блокировки.Функция
recv_done(), работающая в контексте softirq, устанавливает состояние P9_RDMA_FLUSHING без захвата req_lock. Аналогично, обработчик событий p9_cm_event_handler() изменяет состояние (например, ADDR_RESOLVED, ESTABLISHED, CLOSED) без использования блокировки.Такой подход нарушает атомарность операций. Когда
recv_done() или обработчик событий одновременно с rdma_request() пытаются изменить состояние, происходит потеря переходов (lost state transitions). Например, переход в состояние FLUSHING может быть случайно перезаписан переходом в CLOSING, что приводит к рассинхронизации конечного автомата соединения.Как работает атака
Атакующий может инициировать сетевые операции, которые приведут к одновременному вызову конфликтующих функций в ядре. Поскольку уязвимость находится в сетевом стеке, для её срабатывания достаточно направить специально сформированные пакеты или установить соединение, провоцирующее гонку.
Когда
rdma_request() проверяет или изменяет состояние под защитой req_lock, а recv_done() или p9_cm_event_handler() одновременно записывают новое состояние без блокировки, возникает конфликт. Ядро может зафиксировать некорректное состояние соединения, которое не соответствует фактическому статусу RDMA-запросов.Повреждение конечного автомата приводит к тому, что ядро начинает обрабатывать объекты, которые уже были освобождены или находятся в невалидном состоянии. Это вызывает use-after-free на объектах RDMA-запросов в процессе разрыва соединения (teardown). Последствием может стать отказ в обслуживании (DoS) или выполнение кода в контексте ядра.
Условия успешной эксплуатации
Для успешной эксплуатации уязвимости атакующему необходимо выполнить следующие условия:
- Сетевой доступ: Возможность устанавливать соединения с целевой системой, использующей протокол 9p с RDMA.
- Активный модуль: В ядре должна быть загружена и активна подсистема
net/9pс поддержкой RDMA.
- Точное время: Атакующему необходимо спровоцировать одновременное выполнение конфликтующих функций (
rdma_requestиrecv_done/p9_cm_event_handler).
- Отсутствие исправлений: Система должна работать на уязвимой версии ядра, не содержащей патч, добавляющий блокировку
req_lock.
Возможный сценарий атаки
Сценарий атаки начинается с установления RDMA-соединения через протокол 9p. Атакующий направляет серию запросов, которые заставляют ядро обрабатывать завершение передачи данных и события управления соединением одновременно.
В момент, когда
recv_done() пытается перевести соединение в состояние FLUSHING, атакующий инициирует событие, обрабатываемое p9_cm_event_handler(). Из-за отсутствия блокировки эти операции пересекаются во времени. rdma_request() может прочитать промежуточное, некорректное значение состояния.В результате конечный автомат соединения переходит в невалидное состояние. При последующем разрыве соединения ядро пытается освободить ресурсы, которые уже были освобождены или находятся в поврежденном состоянии. Это приводит к use-after-free и потенциальному падению ядра или выполнению кода атакующего.
Есть ли публичный эксплойт
На момент публикации данных в каталоге CISA KEV подтверждений о массовой эксплуатации CVE-2026-72491 в реальных атаках не зафиксировано. Публичные PoC-коды или готовые эксплойты в открытых базах данных также не обнаружены.
Отсутствие сведений о публичном эксплойте не означает, что уязвимость не может быть использована. Механизм атаки описан в описании CVE, что позволяет атакующим с доступом к исходному коду ядра разработать собственный эксплойт. EPSS оценивает вероятность эксплуатации в 0,72%, что указывает на низкий, но ненулевой риск.
Признаки эксплуатации
Специфичные индикаторы компрометации (IOC) для CVE-2026-72491 в доступных источниках не раскрыты. Поскольку уязвимость находится в ядре, её эксплуатация может не оставлять характерных следов в пользовательских журналах.
Для мониторинга следует использовать неспецифичные точки контроля:
- Журналы ядра: Поиск записей
kernel panic,use-after-freeилиBUG: KASANвdmesgи/var/log/kern.log.
- Сетевая активность: Аномальные обрывы соединений 9p или RDMA-сессии, которые не объясняются проблемами сети.
- Системные сбои: Внезапные перезагрузки или зависания системы при нагрузке на файловую систему 9p.
Как обнаружить атаку
Обнаружение атаки на CVE-2026-72491 затруднено из-за отсутствия специфичных сигнатур. Рекомендуется настроить мониторинг на основе следующих неспецифичных признаков:
- Анализ журналов ядра: Настройка алертов на сообщения об ошибках памяти (memory corruption) и use-after-free в подсистеме
net/9p.
- Мониторинг производительности: Отслеживание аномальных задержек или отказов в работе сервисов, использующих 9p RDMA.
- Сетевые логи: Анализ логов сетевого оборудования на предмет аномальных паттернов установления и разрыва RDMA-соединений.
Для точной детекции необходимо внедрить механизмы мониторинга ядра (например, eBPF), способные отслеживать изменения состояния RDMA-соединений в реальном времени.
Как проверить свою версию
Для проверки текущей версии пакета
linux и наличия исправлений в Debian используйте следующие команды. Замените <имя-пакета> на фактическое имя пакета ядра (например, linux-image-amd64), если оно отличается.
Bash:
cat /etc/debian_version
cat /etc/os-release
apt-cache policy <имя-пакета>
dpkg-query -W -f='${Package} ${Version}\n' <имя-пакета>
Сравните полученную версию с версиями, указанными в разделе «Какие продукты и версии затронуты». Если версия ниже исправленной, система уязвима.
Исправление
Единственным надежным способом устранения уязвимости является обновление пакета
linux до версий, содержащих исправление. Debian Security Tracker подтверждает, что все перечисленные релизы получили патчи.- Debian 12 (bookworm): Обновите до версии
6.1.180-1из репозиторияbookworm-security.
- Debian 11 (bullseye): Обновите до версии
5.10.262-1из репозиторияbullseye-security.
- Debian 13 (trixie): Обновите до версии
6.12.107-1из репозиторияtrixie-security.
- Debian (forky/sid): Обновите до версии
7.1.5-1.
Для применения обновлений выполните стандартные команды обновления пакетов в вашей системе. После обновления перезагрузите систему для загрузки нового ядра.
Временные меры защиты
Пока обновление не применено, можно снизить риск эксплуатации, ограничив доступ к уязвимой подсистеме:
- Отключение 9p RDMA: Если протокол 9p с RDMA не используется, отключите соответствующие модули ядра или сервисы, которые его задействуют.
- Сетевая изоляция: Ограничьте сетевой доступ к портам, используемым 9p RDMA, с помощью файрвола. Разрешите соединения только от доверенных хостов.
- Мониторинг: Усиленный мониторинг журналов ядра на предмет аномалий в работе подсистемы 9p.
Эти меры не устраняют уязвимость, но снижают вероятность её эксплуатации.
Как проверить устранение уязвимости
После обновления пакета
linux необходимо убедиться, что система работает на исправленной версии ядра. Выполните следующие шаги:- Перезагрузите систему, чтобы загрузить новое ядро.
- Проверьте версию загруженного ядра:
Bash:uname -r - Убедитесь, что версия соответствует или превышает исправленную версию для вашего релиза Debian (см. раздел «Исправление»).
- Проверьте, что модуль
trans_rdmaзагружен и работает корректно, если он используется.
Если версия ядра не изменилась после перезагрузки, проверьте настройки загрузчика (GRUB) и убедитесь, что он указывает на новое ядро.
Вывод
CVE-2026-72491 представляет собой критическую уязвимость в ядре Linux, затрагивающую реализацию 9p RDMA. Ошибка связана с нарушением синхронизации при изменении состояния соединения, что может привести к use-after-free и выполнению кода в контексте ядра.
Все актуальные релизы Debian получили исправления. Администраторам необходимо срочно обновить пакет
linux до версий, указанных в Debian Security Tracker. До применения патча рекомендуется ограничить сетевой доступ к подсистеме 9p RDMA и усилить мониторинг журналов ядра.Официальные источники
История обновлений статьи
- 17.08.2026 — Опубликована первая версия материала.
- 18.08.2026 — Уточнены сведения об уязвимых версиях, оценке риска или исправлении.
- 22.08.2026 — Уточнены сведения об уязвимых версиях, оценке риска или исправлении.
- 26.08.2026 — Уточнены сведения об уязвимых версиях, оценке риска или исправлении.
- 29.08.2026 — Уточнены сведения об уязвимых версиях, оценке риска или исправлении.
- 30.08.2026 — Уточнены сведения об уязвимых версиях, оценке риска или исправлении.
Последнее редактирование:
