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 до версий, содержащих исправление, чтобы устранить уязвимость. Проверка версии ядра и мониторинг журналов помогут выявить потенциальные проблемы.
Официальные источники
- NVD — CVE-2026-64303
- FIRST EPSS — CVE-2026-64303
- spi: fsl-lpspi: terminate the RX channel on TX prepare failure path - kernel/git/stable/linux.git - Linux kernel stable tree
- spi: fsl-lpspi: terminate the RX channel on TX prepare failure path - kernel/git/stable/linux.git - Linux kernel stable tree
- spi: fsl-lpspi: terminate the RX channel on TX prepare failure path - kernel/git/stable/linux.git - Linux kernel stable tree
- spi: fsl-lpspi: terminate the RX channel on TX prepare failure path - kernel/git/stable/linux.git - Linux kernel stable tree
- spi: fsl-lpspi: terminate the RX channel on TX prepare failure path - kernel/git/stable/linux.git - Linux kernel stable tree
- spi: fsl-lpspi: terminate the RX channel on TX prepare failure path - kernel/git/stable/linux.git - Linux kernel stable tree
- spi: fsl-lpspi: terminate the RX channel on TX prepare failure path - kernel/git/stable/linux.git - Linux kernel stable tree
- spi: fsl-lpspi: terminate the RX channel on TX prepare failure path - kernel/git/stable/linux.git - Linux kernel stable tree
История обновлений статьи
- 06.08.2026 — Опубликована первая версия материала.
