CVE-2026-64303 в Linux Kernel: утечка памяти при работе с DMA в SPI-драйвере

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

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


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

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


Уязвимость оценена как критическая с CVSS 9.8. Она затрагивает драйвер SPI-устройства fsl-lpspi в ядре Linux. Проблема возникает при использовании DMA-режима передачи данных. В случае ошибки подготовки передачи по TX-каналу, RX-канал остаётся активным, что может привести к записи в уже освобожденные буферы. Это открывает возможность для потенциального повреждения данных. Исправление вносит минимальное изменение в логику обработки ошибок, завершая RX-канал до возврата ошибки.

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


Уязвимость затрагивает Linux Kernel версий, где используется драйвер spi-fsl-lpspi. Особенности проявляются при использовании SPI-устройств с поддержкой DMA. Уязвимость распространена среди систем, работающих на архитектуре ARM и использующих драйвер fsl-lpspi. В частности, она может быть актуальна для устройств на базе процессоров NXP, таких как i.MX и QorIQ. Системы, где применяется этот драйвер в режиме DMA, подвержены риску. Уязвимость не затрагивает все версии ядра, но требует обновления для всех версий, где применяется указанный драйвер.

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


Основной причиной является некорректная обработка ошибок в функции fsl_lpspi_dma_transfer драйвера spi-fsl-lpspi. Когда вызов dmaengine_prep_slave_sg() для TX-канала завершается неудачей, функция завершает TX-канал, но не завершает RX-канал. Поскольку RX-канал уже был отправлен и запущен до подготовки TX-дескриптора, возвращение ошибки -EINVAL приводит к тому, что ядро отменяет маппинг DMA-буферов, но RX-канал продолжает запись в эти буферы. Это создаёт состояние гонки данных, которое может привести к повреждению памяти.

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


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

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


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

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


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

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


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

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


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

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


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

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


Для проверки версии ядра, используемой в системе, выполните команды: uname -r или uname -a. Также можно использовать cat /proc/version. Для определения наличия исправления, проверьте, что в ядре применяется коммит, связанный с исправлением уязвимости CVE-2026-64303. Например, можно использовать grep -r "fsl-lpspi" /boot/config-$(uname -r) или lsmod | grep spi_fsl_lpspi. Убедитесь, что в системе установлено обновление, включающее исправление.

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


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

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


Временные меры защиты не предусмотрены, так как уязвимость связана с внутренней логикой работы драйвера. Рекомендуется ограничить использование SPI-устройств с DMA-поддержкой до момента установки исправления. Также можно отключить использование драйвера fsl-lpspi, если это возможно. В случае невозможности немедленного обновления, рекомендуется мониторинг системы на предмет ошибок DMA и SPI-операций.

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


После установки исправления, рекомендуется проверить, что версия ядра содержит нужный коммит. Можно использовать команду grep -r "fsl-lpspi" /boot/config-$(uname -r) или lsmod | grep spi_fsl_lpspi, чтобы убедиться, что драйвер загружен корректно. Также можно проверить журналы ядра на предмет отсутствия ошибок DMA и SPI-операций. Убедитесь, что система не демонстрирует признаков уязвимости после обновления.

Вывод​


Уязвимость CVE-2026-64303 представляет собой критическую проблему в драйвере spi-fsl-lpspi, которая может привести к повреждению памяти. Исправление вносит минимальное изменение в логику обработки ошибок, завершая RX-канал перед возвратом ошибки. Рекомендуется немедленно обновить ядро 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 — Опубликована первая версия материала.
  • 12.08.2026 — Уточнены сведения об уязвимых версиях, оценке риска или исправлении.
 
Последнее редактирование:
Назад
Верх Низ