CVE: CVE-2026-64268
Продукт: Linux Kernel
Дата публикации: 25.07.2026
Критичность: CRITICAL
CVSS: 9.8 (3.1)
EPSS: 0,71%; процентиль 51,15%
CISA KEV: нет подтверждения в каталоге CISA KEV
Краткое описание
В драйвере RDMA/siw ядра Linux обнаружена критическая уязвимость, позволяющая удаленному атакующему вызвать запись за границами буфера. Ошибка возникает при обработке Read Response в функции siw_proc_rresp(), где отсутствует проверка накопленного смещения на продолжительных сегментах. Статья описывает механизм атаки, затронутые версии и способы проверки исправления.
Основные характеристики
Удаленный узел, подключенный по протоколу iWARP, может вызвать повреждение памяти в ядре Linux. Это может привести к отказу в обслуживании или повышению привилегий.
- Тип ошибки: CWE-787 (Out-of-bounds write). Запись данных происходит за пределами выделенного буфера.
- CVSS: 9.8 (CRITICAL). Вектор:
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H. Высокая оценка отражает удаленный доступ без необходимости аутентификации.
- Условия атаки: Атакующий должен быть удаленным участником установленной RDMA-соединения. Локальные привилегии не требуются.
- Эксплуатация: В каталоге CISA KEV подтверждений активной эксплуатации в дикой природе нет.
- EPSS: 0,71%. Вероятность эксплуатации в ближайшие 30 дней оценивается как низкая (процентиль 51,15%).
Какие продукты и версии затронуты
Уязвимость затрагивает драйвер
siw (Soft-iWARP) в ядре Linux. Ошибка присутствует в версиях, начиная с 5.3, до тех пор, пока не будет применен патч.Затронутые диапазоны версий:
- Linux Kernel: >= 5.3, < 5.10.261
- Linux Kernel: >= 5.11, < 5.15.212
- Linux Kernel: >= 5.16, < 6.1.178
- Linux Kernel: >= 6.2, < 6.6.145
- Linux Kernel: >= 6.7, < 6.12.96
- Linux Kernel: >= 6.13, < 6.18.39
- Linux Kernel: >= 6.19, < 7.1.4
Причина уязвимости
Причина уязвимости кроется в логике обработки входящих сегментов DDP (Direct Data Placement) в функции
siw_proc_rresp() файла drivers/infiniband/sw/siw/siw_qp_rx.c.Функция размещает каждый входящий сегмент Read Response по адресу
sge->laddr + wqe->processed и затем увеличивает счетчик wqe->processed. Однако для продолжительных сегментов (continuation segments) код не проверяет, не превышает ли накопленное смещение длину целевого буфера (sink buffer).Валидация памяти выполняется только для первого фрагмента в функции
siw_check_sge(). Проверка общей длины против wqe->bytes происходит только для финального сегмента в siw_rresp_check_ntoh(). Из-за этого промежуточные сегменты могут «накопить» смещение, выходящее за границы буфера, до того, как будет выполнена финальная проверка.Как работает атака
Атакующий, являющийся удаленным участником установленной RDMA-соединения, отправляет ответ на запрос RREAD (Read Request). Ответ состоит из нескольких сегментов Read Response.
Ключевой момент атаки: атакующий сохраняет флаг DDP Last в состоянии «не установлен» (clear) для всех сегментов, кроме последнего, и при этом передает общий объем полезной нагрузки, превышающий запрошенный в RREAD.
Поскольку проверка накопленного смещения отсутствует для промежуточных сегментов, переменная
wqe->processed увеличивается за пределы валидированного буфера. При следующей итерации обработки данных вызов siw_rx_data() выполняет запись по адресу sge->laddr + wqe->processed, что приводит к out-of-bounds write в памяти ядра.Условия успешной эксплуатации
Для успешной эксплуатации уязвимости атакующему необходимо выполнить следующие условия:
- Наличие установленной RDMA-соединения с целевой системой через протокол iWARP (Soft-iWARP).
- Возможность отправлять пакеты Read Response в ответ на запросы RREAD.
- Контроль над содержимым DDP-сегментов, включая возможность манипуляции флагом Last и длиной полезной нагрузки.
- Локальные привилегии на целевой системе не требуются, так как атака ведется по сети.
Возможный сценарий атаки
Сценарий атаки начинается с того, что легитимное приложение на целевой системе инициирует RDMA-операцию чтения (RREAD). Драйвер siw ожидает ответ от удаленного узла.
Атакующий перехватывает или инициирует соединение и начинает отправлять сегменты Read Response. Каждый сегмент содержит данные, но флаг Last не устанавливается, что указывает на продолжение передачи. При этом суммарный объем данных превышает запрошенный.
Драйвер обрабатывает каждый сегмент, увеличивая
wqe->processed. Когда смещение превышает размер буфера, последующая запись данных выходит за его пределы. Это может привести к повреждению структур данных ядра, падению системы (panic) или выполнению кода с привилегиями ядра.Есть ли публичный эксплойт
На момент публикации CVE-2026-64268 в каталоге CISA KEV нет подтверждений массовой эксплуатации в реальных атаках. Публичный PoC (Proof of Concept) или готовый эксплойт в открытых базах данных не зафиксирован.
Однако наличие подробного технического описания и патча в ядре Linux позволяет исследователям и атакующим разработать эксплойт. Отсутствие сведений об эксплуатации не означает, что эксплойт невозможен; он может быть в разработке или использоваться в закрытых кампаниях.
Признаки эксплуатации
Специфичные индикаторы компрометации (IOC) для этой уязвимости в официальных источниках не раскрыты. Ниже приведены неспецифичные признаки, которые могут указывать на подозрительную активность в RDMA-трафике:
- Необычно длинные или повторяющиеся Read Response сегменты в RDMA-трафике.
- Пакеты с флагом DDP Last, установленным в 0, для последовательности сегментов, которая должна быть завершена.
- Аномальные значения в логах драйвера siw, связанные с ошибками длины (length errors) или DDP-ошибками.
- Внезапные сбои или перезагрузки системы, связанные с обработкой RDMA-трафика.
Как обнаружить атаку
Для обнаружения атаки можно использовать следующие методы:
- Мониторинг RDMA-трафика с помощью специализированных инструментов для анализа iWARP.
- Анализ логов ядра Linux на наличие сообщений об ошибках в драйвере siw, особенно связанных с
SIW_WC_LOC_LEN_ERRили DDP-ошибками.
- Использование систем обнаружения вторжений (IDS) с поддержкой RDMA-протоколов.
- Проверка целостности памяти ядра с помощью механизмов KASLR и KSM, если они доступны.
Как проверить свою версию
Для проверки версии ядра Linux и определения, затронута ли система, используйте следующие команды:
Bash:
uname -r
uname -a
cat /proc/version
Сравните полученную версию с перечнем уязвимых диапазонов. Если версия входит в один из указанных диапазонов, система уязвима. Для точной проверки наличия патча рекомендуется свериться с changelog дистрибутива или использовать инструменты управления обновлениями.
Исправление
Единственным надежным способом устранения уязвимости является обновление ядра Linux до версии, содержащей исправление. Патч был принят в основную ветку ядра и портирован в стабильные ветки.
Обновите ядро до следующих версий или выше:
- 5.10.261
- 5.15.212
- 6.1.178
- 6.6.145
- 6.12.96
- 6.18.39
- 7.1.4
Используйте штатные средства обновления вашего дистрибутива Linux. После обновления перезагрузите систему для применения нового ядра.
Временные меры защиты
Пока обновление не установлено, можно рассмотреть следующие временные меры:
- Ограничение доступа к RDMA-интерфейсам на уровне файрвола, если это допустимо в вашей инфраструктуре.
- Отключение модуля siw, если он не используется:
rmmod siw(с осторожностью, это может нарушить работу RDMA-приложений).
- Изоляция узлов, использующих RDMA, в отдельную сеть с ограниченным доступом.
- Мониторинг RDMA-трафика на аномальные паттерны, описанные в разделе IOC.
Как проверить устранение уязвимости
После обновления ядра убедитесь, что исправление применено:
- Проверьте версию ядра:
uname -r. Убедитесь, что версия соответствует или превышает минимальную исправленную версию для вашей ветки.
- Проверьте наличие патча в исходном коде ядра (если вы компилируете ядро самостоятельно). Ищите коммит
7d29f7e9dbd844cae4d3e559cf78324b9642fd6bили его порты в стабильных ветках.
- Проведите функциональное тестирование RDMA-приложений, чтобы убедиться, что обновление не нарушило их работу.
- Проверьте логи ядра на наличие ошибок после обновления.
Вывод
CVE-2026-64268 представляет собой критическую уязвимость в драйвере RDMA/siw, позволяющую удаленному атакующему вызвать out-of-bounds запись в памяти ядра. Учитывая высокую оценку CVSS и отсутствие необходимости в локальных привилегиях, обновление ядра должно быть приоритетным. Администраторы должны проверить версии своих систем, применить патчи и рассмотреть временные меры защиты до завершения обновления.
Официальные источники
- NVD — CVE-2026-64268
- FIRST EPSS — CVE-2026-64268
- RDMA/siw: bound Read Response placement to the RREAD length - kernel/git/stable/linux.git - Linux kernel stable tree
- RDMA/siw: bound Read Response placement to the RREAD length - kernel/git/stable/linux.git - Linux kernel stable tree
- RDMA/siw: bound Read Response placement to the RREAD length - kernel/git/stable/linux.git - Linux kernel stable tree
- RDMA/siw: bound Read Response placement to the RREAD length - kernel/git/stable/linux.git - Linux kernel stable tree
- RDMA/siw: bound Read Response placement to the RREAD length - kernel/git/stable/linux.git - Linux kernel stable tree
- RDMA/siw: bound Read Response placement to the RREAD length - kernel/git/stable/linux.git - Linux kernel stable tree
- RDMA/siw: bound Read Response placement to the RREAD length - kernel/git/stable/linux.git - Linux kernel stable tree
- RDMA/siw: bound Read Response placement to the RREAD length - kernel/git/stable/linux.git - Linux kernel stable tree
История обновлений статьи
- 06.08.2026 — Опубликована первая версия материала.
- 31.08.2026 — Уточнены сведения об уязвимых версиях, оценке риска или исправлении.
Последнее редактирование:
