CVE: CVE-2026-97413
Продукт: Linux Kernel
Дата публикации: 24.09.2026
Критичность: CRITICAL
CVSS: 9.8 (3.1)
EPSS: 0,45%; процентиль 36,60%
CISA KEV: нет подтверждения в каталоге CISA KEV
Краткое описание
Уязвимость CVE-2026-97413 затрагивает модуль rtrs-srv в подсистеме RDMA ядра Linux. Поле usr_len из сетевого сообщения используется без проверки при вычислении data_len = off - usr_len.
Если usr_len больше off, возникает integer underflow, и data_len получает огромное значение size_t. Это значение передаётся в rdma_ev как длина памяти, что приводит к out-of-bounds memory access.
Основные характеристики
Риск связан с невалидированным входным полем из сетевого сообщения RDMA-клиента, которое вызывает обратное переполнение целого числа и последующее обращение к памяти за пределами выделенного буфера.
- Тип ошибки: integer underflow в вычислении
data_len = off - usr_lenбез проверки условияusr_len <= off
- CVSS 3.1:
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H, оценка 9.8, критическая
- Вектор атаки: удалённый доступ через RDMA/rtrs-srv, без необходимости прав и без взаимодействия пользователя
- Факт эксплуатации: в предоставленных источниках подтверждено наличие исправления в стабильном дереве ядра Linux; отдельного подтверждения массовой эксплуатации не приведено
- EPSS: 0.452%, процентиль 36.6%
Какие продукты и версии затронуты
Затронут компонент
rtrs-srv из подсистемы RDMA ядра Linux, реализованный в файле drivers/infiniband/ulp/rtrs/rtrs-srv.c. Уязвимые функции — process_read() и process_write(), которые обрабатывают сетевые сообщения от RDMA-клиентов.Исправление было внесено в стабильное дерево ядра Linux через следующие коммиты:
- Upstream commit 54bf38b27afc08a0eb6b732f9c14eb8a4bcb66b5
- Stable backport 24ad03bfeda05fca04c56677e57fd3d6bc3e9978
- Stable backport c76e9123ab91a903396d26e6ab1b5caae5c6b149
Точные версии дистрибутивов и ядра, в которые уже внесены патчи, в предоставленных источниках не перечислены. Для определения актуального состояния системы используйте команды проверки версии ядра.
Причина уязвимости
В функциях
process_read() и process_write() модуля rtrs-srv переменная usr_len считывается из сетевого сообщения через le16_to_cpu(msg->usr_len) или le16_to_cpu(req->usr_len). Это значение используется для вычисления data_len = off - usr_len без проверки того, что usr_len <= off.Когда злоумышленник отправляет RDMA-клиентом сообщение с полем
usr_len, превышающим off, вычитание приводит к integer underflow. В C/C++ для знакового целого типа отрицательный результат оборачивается в большое положительное число, которое интерпретируется как size_t. Это огромное значение передаётся в колбэк rdma_ev как длина памяти.Исправление добавляет явную проверку
usr_len > off до вызова rtrs_srv_get_ops_ids(). При нарушении условия функция завершает работу с помощью early return, не выполняя дальнейшую обработку и не передавая невалидный размер в колбэк. Это устраняет out-of-bounds memory access.Как работает атака
Атакующий взаимодействует с RDMA-сервисом rtrs-srv как клиент. В сетевом сообщении он управляет полем
usr_len.В уязвимой версии ядра:
- Функция
process_read()илиprocess_write()получает сообщение от клиента.
- Поле
usr_lenсчитывается из сообщения черезle16_to_cpu()без проверки диапазона.
- Вычисляется
data_len = off - usr_len. Еслиusr_len > off, результат отрицательный и оборачивается в большое значениеsize_t.
- Переменная
dataполучает адрес страницы из массиваsrv->chunks[buf_id]черезpage_address().
- Колбэк
ctx->ops.rdma_ev()вызывается с переданнымdata_len, который может быть значительно больше реального выделенного размера.
- Внутри RDMA-инфраструктуры это значение используется как длина памяти, что приводит к обращению за пределами буфера.
Исправление перемещает проверку в начало обработки: если
usr_len > off, функция сразу возвращает управление без дальнейшего использования невалидного значения. Это предотвращает передачу огромного размера в колбэк и последующее out-of-bounds обращение.Условия успешной эксплуатации
Для успешной эксплуатации необходимы следующие условия:
- Система работает с ядром Linux, содержащим уязвимый модуль rtrs-srv.
- Подсистема RDMA/rtrs-srv активна и принимает сетевые сообщения от клиентов.
- У злоумышленника есть возможность отправить RDMA-сообщение с контролируемым полем
usr_len.
- Поле
usr_lenв сообщении превышает значениеoff, используемое при обработке запроса.
В предоставленных источниках не указаны конкретные версии дистрибутивов или ядра, которые гарантированно уязвимы. Проверка актуального состояния системы должна проводиться через команды проверки версии ядра и анализ наличия исправления в текущем дереве.
Возможный сценарий атаки
Сценарий предполагает взаимодействие с RDMA-сервисом rtrs-srv на целевой системе.
Атакующий подключается к RDMA-интерфейсу как клиент. Он формирует сообщение, в котором поле
usr_len установлено значением, превышающим off. В уязвимой версии ядра это значение не проверяется и используется для вычисления data_len = off - usr_len.В результате integer underflow переменная
data_len получает огромное значение. Это значение передаётся в колбэк rdma_ev вместе с указателем на данные из массива srv->chunks[buf_id]. Внутри RDMA-инфраструктуры огромная длина приводит к обращению к памяти за пределами выделенного буфера.После исправления проверка
usr_len > off выполняется до передачи данных в колбэк. При нарушении условия функция завершает работу без дальнейшего использования невалидного размера, что устраняет out-of-bounds memory access.Есть ли публичный эксплойт
В предоставленных источниках подтверждено наличие исправления в стабильном дереве ядра Linux и техническое описание ошибки.
Отдельного публичного PoC с готовым кодом эксплойта в пакете доказательств не приведено. Отсутствие сведений о конкретном эксплойте не означает, что он не существует. Для оценки фактической эксплуатируемости необходимо анализировать текущие версии ядра и наличие исправления в используемом дистрибутиве.
Признаки эксплуатации
Специфичных IOC для CVE-2026-97413 в предоставленных источниках не выделено. Ниже приведены общие точки контроля, которые можно использовать при подозрении на атаки через RDMA/rtrs-srv:
- Внезапное увеличение числа сетевых соединений к RDMA-интерфейсам.
- Аномальные значения полей
usr_lenв логировании RDMA-транзакций, если такой лог доступен.
- Рост потребления памяти или нестабильность ядра при обработке RDMA-запросов.
- Появление сообщений в kernel log с префиксом
rtrs-srv: Invalid usr_len, если debug-логирование включено.
Эти признаки неспецифичны и могут возникать по другим причинам. Для подтверждения эксплуатации CVE-2026-97413 требуется анализ версии ядра и наличия исправления.
Как обнаружить атаку
Основные методы обнаружения:
- Проверка версии ядра с помощью
uname -rилиuname -a.
- Анализ kernel log на наличие сообщений от модуля rtrs-srv, особенно при включённом debug-режиме.
- Мониторинг сетевой активности RDMA-интерфейсов на предмет аномальных запросов.
- Сравнение текущей версии ядра с известными стабильными релизами, содержащими исправление.
В предоставленных источниках не указаны конкретные сигнатуры для IDS/IPS или готовые правила обнаружения. Для точной оценки актуальности уязвимости используйте команды проверки версии и анализ дерева ядра.
Как проверить свою версию
Для проверки версии ядра Linux используйте следующие команды:
Bash:
uname -r
Bash:
uname -a
Bash:
cat /proc/version
Эти команды показывают версию ядра и информацию о сборке. Для определения наличия исправления CVE-2026-97413 необходимо сравнить текущую версию с стабильными релизами, в которые внесены патчи:
- Upstream commit 54bf38b27afc08a0eb6b732f9c14eb8a4bcb66b5
- Stable backport 24ad03bfeda05fca04c56677e57fd3d6bc3e9978
- Stable backport c76e9123ab91a903396d26e6ab1b5caae5c6b149
Если используется дистрибутив, проверьте его репозиторий обновлений на наличие пакетов ядра с соответствующими патчами.
Исправление
Основной способ исправления — обновление ядра Linux до версии, содержащей патч CVE-2026-97413.
- Обновите дистрибутив до последней стабильной версии, в которую внесены backport-коммиты из списка выше.
- Если используете кастомное дерево ядра, примените upstream commit
54bf38b27afc08a0eb6b732f9c14eb8a4bcb66b5или соответствующие stable backports.
- После обновления перезагрузите систему для применения изменений в ядре.
В предоставленных источниках не указаны конкретные номера версий пакетов или дистрибутивов. Для точного определения актуального состояния используйте команды проверки версии и анализ дерева ядра.
Временные меры защиты
Если обновление ядра невозможно, рассмотрите следующие временные меры:
- Ограничьте доступ к RDMA-интерфейсам с помощью сетевых правил.
- Отключите модуль rtrs-srv, если он не используется в текущей конфигурации системы.
- Мониторинг kernel log на наличие сообщений от rtrs-srv при обработке запросов.
Эти меры снижают поверхность атаки, но не устраняют саму уязвимость. Для полного устранения риска необходимо применить исправление ядра.
Как проверить устранение уязвимости
После обновления проверьте:
- Версию ядра с помощью
uname -rилиuname -a.
- Наличие патча в дереве ядра через git log или анализ исходного кода модуля rtrs-srv.
- Отсутствие сообщений об ошибках в kernel log при обработке RDMA-запросов.
Для подтверждения применения исправления убедитесь, что текущая версия ядра содержит один из следующих коммитов:
- Upstream commit 54bf38b27afc08a0eb6b732f9c14eb8a4bcb66b5
- Stable backport 24ad03bfeda05fca04c56677e57fd3d6bc3e9978
- Stable backport c76e9123ab91a903396d26e6ab1b5caae5c6b149
Если используется дистрибутив, проверьте его репозиторий обновлений на наличие пакетов ядра с соответствующими патчами.
Вывод
CVE-2026-97413 представляет собой критическую уязвимость в модуле rtrs-srv ядра Linux, связанную с integer underflow при обработке сетевых сообщений RDMA-клиентов. Ошибка возникает из-за невалидации поля
usr_len перед вычислением data_len = off - usr_len. При условии usr_len > off происходит out-of-bounds memory access.Практическое значение для администратора состоит в необходимости проверки версии ядра и наличия исправления. Если RDMA/rtrs-srv активен, уязвимость может быть эксплуатируема удалённым клиентом без необходимости прав. Основной способ устранения — обновление ядра до версии с патчем CVE-2026-97413.
Официальные источники
- NVD — CVE-2026-97413
- FIRST EPSS — CVE-2026-97413
- RDMA/rtrs-srv: Fix integer underflow in process_read and process_write - kernel/git/stable/linux.git - Linux kernel stable tree
- RDMA/rtrs-srv: Fix integer underflow in process_read and process_write - kernel/git/stable/linux.git - Linux kernel stable tree
- RDMA/rtrs-srv: Fix integer underflow in process_read and process_write - kernel/git/stable/linux.git - Linux kernel stable tree
- CVEs — The Linux Kernel documentation
История обновлений статьи
- 25.09.2026 — Опубликована первая версия материала.
- 26.09.2026 — Уточнены сведения об уязвимых версиях, оценке риска или исправлении.
Последнее редактирование:
