CVE: CVE-2026-98365
Продукт: Linux Kernel
Дата публикации: 06.10.2026
Критичность: CRITICAL
CVSS: 9.8 (3.1)
EPSS: 0,38%; процентиль 30,01%
CISA KEV: нет подтверждения в каталоге CISA KEV
Краткое описание
В подсистеме Soft-RoCE (rxe) ядра Linux исправлена уязвимость CVE-2026-98365: функция
mr_check_range() проверяла границы зарегистрированной области памяти арифметикой, подверженной переполнению. Удалённый пир может подобрать значения iova и length так, чтобы сумма переполнилась через ноль, обойти проверку и вызвать внеполосное чтение/запись и kernel oops. Исправление применено в стабильные ветки ядра (коммит d10e2a08799e); по описанию атака возможна по сети без аутентификации.Основные характеристики
Суть риска: удалённый участник RDMA-соединения отправляет специально сформированный запрос RDMA Write/Read, из-за переполнения целого числа обходит проверку границ памяти и вызывает внеполосный доступ в ядре, что приводит к kernel oops.
Ключевые параметры:
- Тип ошибки: целочисленное переполнение при проверке диапазона, приводящее к out-of-bounds доступу; CWE-идентификаторы в записи CVE не указаны.
- CVSS 3.1: 9.8, критическая; вектор
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H— атака по сети, без сложных условий, без привилегий и без участия пользователя.
- Условие атаки: сетевая доступность RDMA/rxe-пира; аутентификация не требуется.
- EPSS: 0,382% (процентиль 30,02%) — низкая оценка вероятности эксплуатации в ближайшие 30 дней, но метрика не гарантирует отсутствия риска.
- CISA KEV: подтверждения включения в каталог отсутствуют.
- Подтверждённая эксплуатация: сведения о реальных атаках в доступных источниках отсутствуют.
Какие продукты и версии затронуты
Уязвимость находится в драйвере Soft-RoCE (
drivers/infiniband/sw/rxe/rxe_mr.c) ядра Linux. Согласно метке Fixes, дефект присутствует с коммита 8700e3e7c485 («Soft RoCE driver»), то есть с момента появления драйвера rxe в ядре.Точный перечень затронутых версий ядра в пакете доказательств не приведён: список
affected в NVD пуст, данные дистрибутивов отсутствуют. Подтверждено лишь то, что исправление применено в нескольких стабильных ветках ядра:- исходный патч
d10e2a08799e858d3e71ea4169bcd018f216d444;
- бэкпорты
2f3b705144e3a3c14184fec6e354680081fe91ec,3431f525718f6b07da308cda6d44f8cb548bbd37,5d9426a74fc8cb8f375fcdc19b465a030f9b8cab,b7d2118660545a00b21e83010ded1a231c6fb8c5.
Уязвимы системы, где загружен код rxe и доступен RDMA-пир. Ядра без использования Soft-RoCE этим путём атаки не затрагиваются.
Причина уязвимости
Функция
mr_check_range() должна проверять, что диапазон [iova, iova+length) лежит внутри зарегистрированной области памяти (MR). Проверка была записана как iova < mr->ibmr.iova || iova + length > mr->ibmr.iova + mr->ibmr.length — арифметика здесь склонна к переполнению: при значениях, близких к максимуму 64-битного типа, сумма iova + length может «завернуться» через ноль.В результате проверка перестаёт отражать реальную границу: диапазон, фактически выходящий за пределы MR, проходит как корректный. Ошибка существовала с момента добавления драйвера Soft-RoCE (коммит
8700e3e7c485).Исправление переписывает условие в переполнение-безопасной форме: сначала проверяется
length > mr->ibmr.length, затем iova - mr->ibmr.iova > mr->ibmr.length - length. Первые два условия гарантируют, что последующие вычитания не приведут к underflow.Как работает атака
Путь данных начинается с сети: удалённый пир отправляет пакет RDMA Write или Read с полем RETH (RDMA Extended Transport Header), в котором заданы iova и length. Эти значения попадают в
mr_check_range() на стороне респондера.Если подобрать значения так, что
iova + length переполнится и обнулится (в описании уязвимости приведён пример iova=0xfffffffffffffff8, length=8), проверка границ проходит успешно, хотя диапазон лежит вне зарегистрированной области.Далее
rxe_mr_iova_to_index() вычисляет огромный индекс типа int, защищённый лишь макросом WARN_ON — предупреждением, не прерывающим выполнение. Затем rxe_mr_copy_xarray() обращается к mr->page_info[огромный_индекс]: происходит внеполосное чтение или запись, приводящее к kernel oops.Источники не подтверждают возможность контролируемого выполнения кода; последствия за пределами отказа ядра не установлены.
Условия успешной эксплуатации
Из описания уязвимости следуют такие условия:
- в ядре используется подсистема Soft-RoCE (rxe) и загружен соответствующий код;
- атакующий имеет сетевой доступ к RDMA-пиру (респондеру);
- аутентификация не требуется — атака выполнима неаутентифицированным удалённым пиром;
- атакующий может отправить RDMA Write/Read с контролируемыми полями iova и length в RETH.
Дополнительные условия (конкретные версии ядра, конфигурация RDMA-интерфейсов, требования сетевого экранирования) в доступных источниках не раскрыты.
Возможный сценарий атаки
Сценарий на основе подтверждённой механики: атакующий, имеющий сетевую доступность RDMA-пира, отправляет ему запрос RDMA Write или Read с RETH, где iova и length подобраны так, что их сумма переполняется через ноль. Проверка в
mr_check_range() из-за переполнения пропускает такой запрос.Код респондера вычисляет огромный индекс страницы и обращается к
mr->page_info вне границ массива. Результат — kernel oops, то есть отказ ядра и, вероятно, недоступность узла до перезагрузки.Такой исход согласуется с вектором CVSS (сеть, без привилегий, влияние на доступность, целостность и конфиденциальность на уровне H), однако подтверждения реализации иных последствий, помимо oops, в источниках нет.
Есть ли публичный эксплойт
В пакете доказательств нет сведений о публичном PoC, готовом эксплойте или подтверждённых случаях эксплуатации в реальных атаках. Отсутствие таких сведений не означает отсутствия эксплойта: механика атаки подробно описана в самом коммите исправления, включая пример переполняющихся значений, что снижает порог для воспроизведения. EPSS 0,382% и отсутствие записи в CISA KEV указывают на низкую наблюдаемую активность, но не гарантируют безопасности.
Признаки эксплуатации
Специфичные IOC (хэши, IP-адреса, сигнатуры пакетов) для этой уязвимости в доступных источниках не опубликованы. Косвенными точками контроля могут служить:
- сообщения
WARN_ONизrxe_mr_iova_to_index()и последующие kernel oops/panic в журналах ядра;
- записи
REMOTE_ACCESS_ERRORв журналах RDMA-респондера после установки исправления — это штатная реакция на некорректный iova, но она сигнализирует о попытке выхода за границы MR;
- аномальный RDMA-трафик Write/Read с экстремальными значениями iova от одного источника.
Каждый признак по отдельности не доказывает эксплуатацию CVE-2026-98365.
Как обнаружить атаку
Сначала проверьте, используется ли в системе Soft-RoCE: наличие загруженного модуля rxe и настроенных RDMA-интерфейсов (
rdma link show, если утилита доступна) сужает круг затронутых узлов. Системы без rxe этим вектором не затрагиваются.Далее:
- просмотрите журналы ядра (
journalctl -k,dmesg) на предмет WARN/oops из файловrxe_mr.c;
- проверьте журналы RDMA-подсистемы на ошибки
REMOTE_ACCESS_ERROR;
- при наличии сетевого мониторинга оцените трафик к RDMA/RoCE-портам на аномальные запросы Write/Read.
Это общие точки контроля, а не специфичные сигнатуры: конкретные IOC в источниках не приведены.
Как проверить свою версию
Определите версию ядра на узле:
bash
uname -r
uname -a
cat /proc/version
Вывод
uname -r покажет версию ядра; сравните её с версией, в которую вошло исправление для вашей ветки. Точный перечень затронутых версий в источниках не приведён, поэтому ориентируйтесь на наличие исправляющего коммита в истории вашей ветки или на обновления от поставщика дистрибутива. Для собственной сборки ядра проверьте наличие исправленного условия в drivers/infiniband/sw/rxe/rxe_mr.c.Исправление
Исправление выпущено: исходный патч
d10e2a08799e858d3e71ea4169bcd018f216d444 применён в основное дерево, а его бэкпорты вошли в стабильные ветки ядра — 2f3b705144e3, 3431f525718f, 5d9426a74fc8, b7d211866054. Патч заменяет проверку границ на переполнение-безопасную форму, после чего некорректный iova отклоняется с -EINVAL, а респондер возвращает REMOTE_ACCESS_ERROR вместо внеполосного доступа.Рекомендуемые действия:
- установите обновление ядра от вашего дистрибутива, содержащее исправление CVE-2026-98365, как только оно доступно;
- для самостоятельно собираемых ядер возьмите исправление из стабильного дерева (коммит
d10e2a08799e858d3e71ea4169bcd018f216d444);
- перезагрузите узел после установки нового ядра, чтобы уязвимый код перестал использоваться.
Откладывать обновление не следует: атака выполняется по сети без аутентификации, а её результат — отказ ядра на затронутом узле.
Временные меры защиты
Полноценной временной защиты, эквивалентной патчу, в источниках не описано. Разумные меры снижения экспозиции (защитные выводы, а не подтверждённые рекомендации из коммита):
- ограничьте сетевой доступ к RDMA/RoCE-портам доверенными узлами средствами сетевого экранирования;
- отключите или выгрузите Soft-RoCE (rxe) на узлах, где эта подсистема не требуется;
- ограничьте круг хостов, которым разрешено устанавливать RDMA-соединения с уязвимым узлом.
Эти меры снижают экспозицию, но не устраняют уязвимость; обновление остаётся обязательным.
Как проверить устранение уязвимости
После установки обновления:
- выполните
uname -rи убедитесь, что работает ядро новой версии;
- проверьте журнал изменений пакета ядра дистрибутива на упоминание CVE-2026-98365 или исправляющего коммита;
- при собственной сборке убедитесь, что в
drivers/infiniband/sw/rxe/rxe_mr.cпроверка диапазона имеет переполнение-безопасный вид (length > mr->ibmr.length || iova - mr->ibmr.iova > mr->ibmr.length - length);
- в журналах ядра после обновления не должно появляться oops из
rxe_mr.c, а некорректные запросы должны завершатьсяREMOTE_ACCESS_ERROR, а не сбоем ядра.
Вывод
CVE-2026-98365 — критическая (CVSS 9.8) уязвимость в драйвере Soft-RoCE ядра Linux: переполнение при проверке границ памяти позволяет неаутентифицированному удалённому пиру вызвать внеполосный доступ и kernel oops.
Исправление выпущено в стабильные ветки ядра и сводится к переполнение-безопасной проверке диапазона. Текущая оценка EPSS (0,382%) и отсутствие данных об эксплуатации не отменяют необходимости обновления: вектор атаки сетевой и не требует привилегий.
Установите исправленное ядро, перезагрузите узлы и ограничьте доступ к RDMA-интерфейсам до завершения обновления.
Официальные источники
- NVD — CVE-2026-98365
- FIRST EPSS — CVE-2026-98365
- RDMA/rxe: Fix integer overflow in mr_check_range() leading to OOB access - kernel/git/stable/linux.git - Linux kernel stable tree
- RDMA/rxe: Fix integer overflow in mr_check_range() leading to OOB access - kernel/git/stable/linux.git - Linux kernel stable tree
- RDMA/rxe: Fix integer overflow in mr_check_range() leading to OOB access - kernel/git/stable/linux.git - Linux kernel stable tree
- RDMA/rxe: Fix integer overflow in mr_check_range() leading to OOB access - kernel/git/stable/linux.git - Linux kernel stable tree
- RDMA/rxe: Fix integer overflow in mr_check_range() leading to OOB access - kernel/git/stable/linux.git - Linux kernel stable tree
- CVEs — The Linux Kernel documentation
История обновлений статьи
- 08.10.2026 — Опубликована первая версия материала.
