CVE: CVE-2026-80752
Продукт: Linux Kernel
Дата публикации: 03.09.2026
Критичность: HIGH
CVSS: 8.4 (3.1)
EPSS: 0,21%; процентиль 11,17%
CISA KEV: нет подтверждения в каталоге CISA KEV
Краткое описание
В драйвере
psxpad-spi ядра Linux обнаружена ошибка, приводящая к обращению по нулевому указателю при переходе устройства в режим энергосбережения.Проблема возникает, если функция
probe не сохраняет данные драйвера, а suspend пытается их прочитать. Исправление уже опубликовано в mainline и стабильных ветках ядра.Материал описывает механизм сбоя, условия срабатывания и способы проверки актуальности системы.
Основные характеристики
Риск связан с локальным отказом в обслуживании (DoS) при попытке приостановки работы контроллера. Ошибка не требует привилегий и пользовательского взаимодействия, но требует физического подключения конкретного устройства.
- Тип ошибки: Обращение по нулевому указателю (NULL pointer dereference) в функции
psxpad_spi_suspend().
- CVSS 3.1: 8.4 (HIGH). Вектор:
CVSS:3.1/AV:L/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H.
- Условия атаки: Локальный доступ (AV:L), отсутствие необходимости в привилегиях (PR:N), отсутствие пользовательского взаимодействия (UI:N).
- Эксплуатация: Публичные данные о подтвержденной эксплуатации в реальных атаках отсутствуют.
- EPSS: 0,21% (процентиль 11,17%). Вероятность эксплуатации в ближайшие 30 дней оценивается как низкая.
Какие продукты и версии затронуты
Уязвимость затрагивает драйвер
psxpad-spi в ядре Linux. Проблема существует в версиях, содержащих исходный код до исправления, опубликованного в коммите 732f38c36059e68ba3b4b89c56911d777fd3185c.- Компонент:
drivers/input/joystick/psxpad-spi.c.
- Устройства: Контроллеры PlayStation 1/2, подключенные по шине SPI.
- Ветки ядра: Исправление внесено в mainline и стабильные ветки (stable). Точные номера версий пакетов для дистрибутивов не указаны в предоставленных источниках, необходимо сверяться с базами данных конкретных дистрибутивов.
Причина уязвимости
Причина ошибки заключается в нарушении порядка инициализации данных драйвера. Функция
psxpad_spi_suspend() пытается получить состояние контроллера с помощью вызова spi_get_drvdata(). Однако в функции psxpad_spi_probe() данные драйвера никогда не сохранялись через spi_set_drvdata().В результате при попытке приостановки работы устройства функция
spi_get_drvdata() возвращает NULL. Последующее обращение к этому указателю приводит к срабатыванию обработчика исключений ядра и аварийному завершению работы системы (panic).Как работает атака
Атака реализуется через штатный механизм управления питанием ядра. Когда система переходит в режим энергосбережения или устройство переводится в состояние suspend, ядро вызывает функцию
psxpad_spi_suspend().Внутри этой функции происходит попытка чтения данных контроллера. Поскольку указатель на данные не был инициализирован на этапе загрузки драйвера, обращение к памяти по адресу
NULL вызывает сбой. Механизм не требует выполнения произвольного кода, но приводит к немедленному отказу в обслуживании.Условия успешной эксплуатации
Для успешного срабатывания уязвимости необходимо выполнение следующих условий:
- В системе установлен драйвер
psxpad-spi.
- Физически подключен контроллер PlayStation 1/2 по шине SPI.
- Система или конкретное устройство переходит в режим энергосбережения (suspend).
- Ядро не содержит исправления, добавляющего вызов
spi_set_drvdata()в функциюprobe.
Возможный сценарий атаки
Пользователь или автоматизированная система инициирует переход в режим сна. Ядро начинает процесс приостановки работы периферийных устройств.
Драйвер
psxpad-spi получает команду suspend. Функция psxpad_spi_suspend() пытается сохранить состояние контроллера, вызывая spi_get_drvdata(). Получив NULL, ядро фиксирует сбой и завершает работу.Пользователь видит сообщение об ошибке ядра (kernel panic) и вынужден перезагрузить систему.
Есть ли публичный эксплойт
Публичные данные о существовании готового эксплойта или подтвержденной эксплуатации в реальных атаках отсутствуют. Ошибка является детерминированной и легко воспроизводимой при наличии соответствующего оборудования, что делает ее потенциально опасной для систем с таким периферийным оборудованием, но массового использования в кибератаках не зафиксировано.
Признаки эксплуатации
Специфических индикаторов компрометации (IOC) для этой уязвимости не существует, так как она приводит к отказу в обслуживании, а не к скрытому проникновению. Общие неспецифичные признаки, которые могут указывать на срабатывание ошибки:
- Внезапное завершение работы системы (kernel panic) при переходе в режим сна.
- Записи в журнале ядра (dmesg) с упоминанием
psxpad-spiиNULL pointer dereference.
- Нестабильность системы при подключении контроллеров PlayStation по SPI.
Как обнаружить атаку
Для обнаружения потенциального срабатывания уязвимости необходимо анализировать логи ядра. Ищите записи, содержащие строки
psxpad-spi и BUG: unable to handle kernel NULL pointer dereference. Также полезно проверять, подключены ли в системе устройства, использующие этот драйвер, и не инициируется ли их приостановка.- Проверка логов:
dmesg | grep psxpad-spi.
- Проверка подключенных устройств:
ls /dev/input/(для идентификации контроллеров).
Как проверить свою версию
Для проверки версии ядра и определения необходимости обновления используйте следующие команды. Они безопасны и не изменяют состояние системы.
Bash:
uname -r
uname -a
cat /proc/version
Полученную версию ядра необходимо сверить с базой данных уязвимостей вашего дистрибутива Linux, чтобы убедиться, что пакет ядра содержит исправление для CVE-2026-80752.
Исправление
Единственным надежным способом устранения уязвимости является обновление ядра Linux до версии, содержащей исправление. Исправление добавляет вызов
spi_set_drvdata(spi, pad) в функцию psxpad_spi_probe(), что гарантирует корректную инициализацию данных перед их использованием.- Обновите пакет ядра через штатный менеджер пакетов дистрибутива.
- Перезагрузите систему для применения нового ядра.
- Убедитесь, что все стабильные ветки ядра, используемые в инфраструктуре, обновлены.
Временные меры защиты
Пока обновление не установлено, можно снизить риск срабатывания уязвимости, ограничив доступ к механизмам энергосбережения для данного устройства или отключив его.
- Отключите контроллер PlayStation 1/2 по SPI, если он не используется.
- Настройте параметры энергосбережения ядра так, чтобы устройство не переходило в режим suspend.
- Используйте альтернативные методы подключения контроллеров, не использующие драйвер
psxpad-spi.
Как проверить устранение уязвимости
После обновления ядра и перезагрузки системы необходимо убедиться, что исправление применено. Проверьте версию ядра и наличие соответствующих коммитов в исходном коде, если это возможно в вашем окружении.
- Проверьте версию:
uname -r.
- Убедитесь, что система стабильно работает при подключении контроллера и переходе в режим сна (если это допустимо в вашей среде).
Вывод
CVE-2026-80752 представляет собой локальную уязвимость, приводящую к отказу в обслуживании. Несмотря на высокий балл CVSS, практический риск ограничен системами с подключенными контроллерами PlayStation по SPI.
Тем не менее, обновление ядра до актуальной версии является обязательным для обеспечения стабильности и безопасности. Рекомендуется включить систему в план регулярного обновления ядра и проверять логи на предмет аномальных сбоев.
Официальные источники
- NVD — CVE-2026-80752
- FIRST EPSS — CVE-2026-80752
- Input: psxpad-spi - set driver data before use - kernel/git/stable/linux.git - Linux kernel stable tree
- Input: psxpad-spi - set driver data before use - kernel/git/stable/linux.git - Linux kernel stable tree
- Input: psxpad-spi - set driver data before use - kernel/git/stable/linux.git - Linux kernel stable tree
- Input: psxpad-spi - set driver data before use - kernel/git/stable/linux.git - Linux kernel stable tree
- Input: psxpad-spi - set driver data before use - kernel/git/stable/linux.git - Linux kernel stable tree
- Input: psxpad-spi - set driver data before use - kernel/git/stable/linux.git - Linux kernel stable tree
- Input: psxpad-spi - set driver data before use - kernel/git/stable/linux.git - Linux kernel stable tree
- Input: psxpad-spi - set driver data before use - kernel/git/stable/linux.git - Linux kernel stable tree
История обновлений статьи
- 04.09.2026 — Опубликована первая версия материала.
