CVE-2026-64303: уязвимость в драйвере SPI Linux Kernel, связанная с некорректной обработкой DMA-каналов

CVE: CVE-2026-64303
Продукт: Linux Kernel
Дата публикации: 25.07.2026
Критичность: CRITICAL
CVSS: 9.8 (3.1)
EPSS: 0,68%; процентиль 48,70%
CISA KEV: нет подтверждения в каталоге CISA KEV

Краткое описание​


Уязвимость CVE-2026-64303 в ядре Linux касается драйвера spi-fsl-lpspi, используемого на устройствах NXP. При ошибке подготовки передачи данных через DMA, RX-канал продолжает работу, что может привести к повреждению памяти или неопределенному поведению. Системы, использующие SPI с DMA-поддержкой, должны быть обновлены для устранения риска.

Основные характеристики​


Уязвимость связана с обработкой ошибок в функции fsl_lpspi_dma_transfer драйвера spi-fsl-lpspi. При сбое подготовки TX-дескриптора, функция завершает TX-канал, но не завершает RX-канал. Поскольку RX-канал уже был отправлен и активен, продолжение его работы после освобождения буферов может привести к неопределенному поведению. Уязвимость оценена как критическая с CVSS 9.8 [1].

Какие продукты и версии затронуты​


Уязвимость затрагивает ядра Linux, в которых используется драйвер spi-fsl-lpspi, особенно на устройствах семейства NXP i.MX. Исправление было включено в стабильное ядро Linux в коммите 01980b5da56e573d62798d0ff6c86bcaa2b22cbe [3]. Системы, использующие SPI с DMA-поддержкой на этих устройствах, находятся в зоне риска.

Причина уязвимости​


Основная причина уязвимости — неправильная логика обработки ошибок в функции fsl_lpspi_dma_transfer. При неудачной подготовке TX-дескриптора, функция завершает TX-канал, но не завершает RX-канал. Так как RX-канал уже был отправлен и активен, продолжение работы с ним после освобождения буферов может привести к повреждению памяти или use-after-free состоянию [3].

Как работает атака​


Механизм уязвимости не требует специальных прав, но зависит от использования SPI с DMA-поддержкой. При ошибке в функции dmaengine_prep_slave_sg() для TX-канала, система продолжает использовать RX-канал, который не контролируется. Буферы, ранее связанные с DMA, могут быть освобождены, но RX-канал продолжает записывать в них. Это приводит к неопределенному поведению и потенциально к утечке данных или сбою системы.

Условия успешной эксплуатации​


Для возникновения эффекта уязвимости требуется система с активным SPI-интерфейсом, работающим через DMA, и возможность вызвать ошибку в подготовке TX-дескриптора. Условия, при которых это происходит, зависят от конкретной конфигурации оборудования и драйвера. Эксплуатация не требует привилегий пользователя, но требует наличия соответствующего SPI-устройства и активной передачи данных.

Возможный сценарий атаки​


Сценарий включает использование SPI-устройства с DMA-поддержкой, где происходит ошибка в подготовке TX-дескриптора. В результате, RX-канал продолжает работу, хотя буферы уже могут быть освобождены. Это может привести к перезаписи памяти или чтению устаревших данных. Такая ситуация может быть использована для повреждения данных или вызова сбоев в работе системы. Сценарий не требует специальных условий, кроме наличия соответствующего оборудования и драйвера.

Есть ли публичный эксплойт​


Нет подтверждённых публичных эксплойтов или PoC для CVE-2026-64303. Информация о возможной эксплуатации не указана в доступных источниках. Отсутствие специфичных данных о техническом описании или использовании в реальных атаках не позволяет утверждать наличие готовых средств эксплуатации.

Признаки эксплуатации​


Признаки компрометации не указаны в доступных источниках. Однако, можно наблюдать аномалии в журналах ядра, связанные с DMA-ошибками или сбоев в SPI-передачах. Также возможны сбои в работе системных служб, использующих SPI-интерфейсы. Для мониторинга рекомендуется анализировать логи ядра и сообщения о DMA-ошибках.

Как обнаружить атаку​


Обнаружение возможно через анализ логов ядра на предмет ошибок DMA или сбоев в SPI-передачах. Проверка версии ядра и наличие исправления помогут определить, подвержена ли система уязвимости. Также можно использовать утилиты для мониторинга состояния DMA-каналов и SPI-устройств. Наличие ошибок в функции fsl_lpspi_dma_transfer может указывать на проблему.

Как проверить свою версию​


Для проверки версии ядра используйте команды:

Код:
uname -r
uname -a

Также можно использовать:

Код:
cat /proc/version

Если версия ядра содержит коммит 01980b5da56e573d62798d0ff6c86bcaa2b22cbe или выше, то уязвимость устранена. Подробности обновления можно найти в источнике [3].

Исправление​


Рекомендуется обновить ядро Linux до версии, содержащей исправление для CVE-2026-64303. Это включает применение патча, который добавляет вызов dmaengine_terminate_sync для RX-канала при ошибке подготовки TX-канала. Обновление должно быть выполнено на всех системах, использующих драйвер spi-fsl-lpspi с DMA-поддержкой.

Временные меры защиты​


В отсутствие обновления, можно ограничить использование SPI-интерфейсов с DMA-поддержкой. Также рекомендуется отслеживать логи ядра на предмет ошибок DMA и сбоев в SPI-передачах. Настройка политик безопасности и мониторинг системных журналов могут помочь выявить подозрительное поведение.

Как проверить устранение уязвимости​


После применения обновления проверьте, что версия ядра включает исправление. Можно использовать команду:

Код:
uname -r

или:

Код:
cat /proc/version

Также можно проверить, что в исходном коде драйвера spi-fsl-lpspi.c строка с dmaengine_terminate_sync изменена на использование controller->dma_rx вместо controller->dma_tx [3].

Вывод​


CVE-2026-64303 представляет собой критическую уязвимость в драйвере SPI для процессоров NXP, которая может привести к повреждению памяти или сбоям в работе системы. Администраторам необходимо обновить ядра Linux до версий, содержащих исправление, чтобы устранить уязвимость. Проверка версии ядра и мониторинг журналов помогут выявить потенциальные проблемы.

Официальные источники​


  1. NVD — CVE-2026-64303
  2. FIRST EPSS — CVE-2026-64303
  3. spi: fsl-lpspi: terminate the RX channel on TX prepare failure path - kernel/git/stable/linux.git - Linux kernel stable tree
  4. spi: fsl-lpspi: terminate the RX channel on TX prepare failure path - kernel/git/stable/linux.git - Linux kernel stable tree
  5. spi: fsl-lpspi: terminate the RX channel on TX prepare failure path - kernel/git/stable/linux.git - Linux kernel stable tree
  6. spi: fsl-lpspi: terminate the RX channel on TX prepare failure path - kernel/git/stable/linux.git - Linux kernel stable tree
  7. spi: fsl-lpspi: terminate the RX channel on TX prepare failure path - kernel/git/stable/linux.git - Linux kernel stable tree
  8. spi: fsl-lpspi: terminate the RX channel on TX prepare failure path - kernel/git/stable/linux.git - Linux kernel stable tree
  9. spi: fsl-lpspi: terminate the RX channel on TX prepare failure path - kernel/git/stable/linux.git - Linux kernel stable tree
  10. spi: fsl-lpspi: terminate the RX channel on TX prepare failure path - kernel/git/stable/linux.git - Linux kernel stable tree

История обновлений статьи​


  • 06.08.2026 — Опубликована первая версия материала.
 
Назад
Верх Низ