CVE: CVE-2026-89970
Продукт: Linux Kernel
Дата публикации: 16.09.2026
Критичность: CRITICAL
CVSS: 9.8 (3.1)
EPSS: 0,78%; процентиль 54,42%
CISA KEV: нет подтверждения в каталоге CISA KEV
Краткое описание
В подсистеме NVMe-oF target ядра Linux обнаружена критическая уязвимость, связанная с нарушением синхронизации при освобождении очереди запросов. Ошибка позволяет фоновой задаче обращаться к памяти, которая уже освобождена или переиспользуется, что создает риск повреждения состояния ядра. Проблема устранена в актуальных ветках ядра.
Основные характеристики
Уязвимость затрагивает подсистему NVMe target и связана с обращением к освобожденной памяти (use-after-free) из-за гонки условий при разрыве сессии. Риск оценивается как критический, так как потенциально позволяет нарушить целостность, конфиденциальность и доступность системы.
- CVSS: 9.8 (CRITICAL). Вектор:
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H. Оценивается как критическая из-за удаленного доступа без аутентификации.
- EPSS: 0,78% (процентиль 54,42%). Показатель отражает вероятность эксплуатации в ближайшие 30 дней.
- Тип ошибки: Use-after-free / Race condition. Связана с асинхронным отменением отложенных задач.
- Статус: CVE опубликован 16.09.2026. Публичные эксплойты на момент публикации не подтверждены.
Какие продукты и версии затронуты
Уязвимость затрагивает подсистему
nvmet (NVMe over Fabrics target) в ядре Linux.- Компонент:
drivers/nvme/target/(файлыauth.c,core.c,nvmet.h).
- Условие уязвимости: Ядро содержит коммит
1a70200f404a("nvmet-auth: expire authentication sessions"), но не содержит исправлениеeaa948c0e19b1bb2d93262207bca0c3d19cc3406.
- Платформы: Системы, использующие NVMe-oF target для предоставления NVMe-хранилища по сети.
Причина уязвимости
Причина кроется в неправильной обработке отложенных задач (delayed work) при освобождении очереди запросов (Submission Queue, SQ).
Функция
nvmet_auth_sq_free() использует cancel_delayed_work() для отмены задачи auth_expired_work. Однако, если задача уже начала выполняться, отмена не ждет завершения колбэка.В результате, транспортный слой может освободить или переиспользовать память, содержащую
struct nvmet_sq, в то время как nvmet_auth_expired_work() все еще обращается к этой структуре. Это классическая гонка условий, приводящая к обращению к освобожденной памяти.Как работает атака
Атакующий может инициировать сценарий, при котором происходит освобождение SQ в момент, когда отложенная задача по истечению срока действия аутентификации все еще активна.
- Инициация процесса освобождения SQ (например, при разрыве соединения или сбросе транспорта).
- Одновременное срабатывание таймера, запускающего
nvmet_auth_expired_work().
- Функция
cancel_delayed_work()не блокирует выполнение, если задача уже в работе.
- Память SQ освобождается, но задача продолжает читать/писать в нее.
- Возникает повреждение памяти, что может привести к падению ядра или выполнению кода.
Условия успешной эксплуатации
Для успешной эксплуатации необходимо:
- Наличие в системе подсистемы NVMe-oF target (
nvmet).
- Возможность удаленного взаимодействия с NVMe target (например, через сеть).
- Точное совпадение таймингов для создания гонки условий (race condition).
Возможный сценарий атаки
Сценарий предполагает, что злоумышленник устанавливает соединение с NVMe target и инициирует разрыв сессии в момент, когда срабатывает таймер истечения срока действия аутентификации.
В результате, память, выделенная под очередь запросов, освобождается, но фоновая задача продолжает к ней обращаться. Это может привести к записи произвольных данных в освобожденную память, что в худшем случае позволяет атакующему выполнить код в контексте ядра.
Есть ли публичный эксплойт
На момент публикации CVE-2026-89970 публичные эксплойты или PoC не зафиксированы. Однако, учитывая высокий CVSS-скор и природу ошибки (use-after-free), вероятность разработки эксплойта в будущем высока.
Признаки эксплуатации
Специфичные IOC для этой уязвимости не опубликованы. Общие признаки атаки на NVMe target:
- Необъяснимые сбои ядра (kernel panics) при работе с NVMe-oF.
- Аномальные записи в логах
dmesgилиsyslogс упоминаниемnvmetилиnvme.
- Необычная активность в сетевых интерфейсах, используемых для NVMe-oF.
Как обнаружить атаку
Для обнаружения потенциальной эксплуатации:
- Мониторинг логов ядра на наличие ошибок, связанных с
nvmetилиnvme.
- Анализ сетевых потоков на предмет аномальных паттернов, характерных для атак на NVMe-oF.
- Использование инструментов для детектирования аномалий в работе подсистемы NVMe target.
Как проверить свою версию
Для проверки версии ядра и наличия уязвимости:
Bash:
uname -r
uname -a
cat /proc/version
Проверьте, содержит ли ваша версия ядра коммит
eaa948c0e19b1bb2d93262207bca0c3d19cc3406. Если нет, система уязвима.Исправление
Единственный надежный способ устранения уязвимости — обновление ядра до версии, содержащей исправление.
- Примените патч
eaa948c0e19b1bb2d93262207bca0c3d19cc3406или более новую версию ядра.
- Пересоберите ядро с включенным исправлением.
- Перезагрузите систему для применения нового ядра.
Временные меры защиты
Пока обновление не применено, можно снизить риск:
- Ограничьте доступ к NVMe target только доверенным хостам.
- Используйте сетевые фильтры (firewall) для блокировки нежелательного трафика.
- Рассмотрите возможность отключения NVMe-oF target, если он не используется.
Как проверить устранение уязвимости
После обновления ядра:
- Проверьте версию ядра с помощью
uname -r.
- Убедитесь, что в логах сборки ядра присутствует коммит
eaa948c0e19b1bb2d93262207bca0c3d19cc3406.
- Проведите функциональное тестирование NVMe target для подтверждения работоспособности.
Вывод
CVE-2026-89970 представляет серьезную угрозу для систем, использующих NVMe-oF target. Из-за высокого CVSS-скора и возможности удаленной эксплуатации без аутентификации, обновление ядра должно быть приоритетным. Администраторы должны проверить свои системы и применить исправление как можно скорее.
Официальные источники
- NVD — CVE-2026-89970
- FIRST EPSS — CVE-2026-89970
- nvmet-auth: Synchronize timeout work during SQ teardown - kernel/git/stable/linux.git - Linux kernel stable tree
- nvmet-auth: Synchronize timeout work during SQ teardown - kernel/git/stable/linux.git - Linux kernel stable tree
- nvmet-auth: Synchronize timeout work during SQ teardown - kernel/git/stable/linux.git - Linux kernel stable tree
- nvmet-auth: Synchronize timeout work during SQ teardown - kernel/git/stable/linux.git - Linux kernel stable tree
- nvmet-auth: Synchronize timeout work during SQ teardown - kernel/git/stable/linux.git - Linux kernel stable tree
- nvmet-auth: Synchronize timeout work during SQ teardown - kernel/git/stable/linux.git - Linux kernel stable tree
- CVEs — The Linux Kernel documentation
История обновлений статьи
- 19.09.2026 — Опубликована первая версия материала.
