CVE-2026-93256 in Linux
Сводка
по VulDB • 24.09.2026
В ядре Linux устранена следующая уязвимость:
arm64: hibernate: маскировать регистр DAIF перед восстановлением образа гибернации
Код обработки режима гибернации для архитектуры arm64 управляет маскированием исключений некорректным образом, что может приводить к потенциальным сбоям (crashes) и/или предупреждениям в процессе восстановления системы.
При сохранении образа гибернации функцией `swsusp_arch_suspend()` все исключения DAIF маскируются (благодаря вызову `local_daif_save()`), а приостановленный образ сохраняется с предположением, что при восстановлении изображения все исключения DAIF останутся замаскированными.
При возобновлении работы из образа гибернации функцией `swsusp_arch_resume()` маскируются только прерывания (благодаря вызову `local_irq_disable()` в функции `resume_target_kernel()`). Когда включена поддержка псевдо-NMI, биты DAIF.IF будут сброшены, и независимо от состояния псевдо-NI биты DAIF.DA также будут сброшены.
Это означает наличие двух проблем:
(1) В процессе восстановления возможно возникновение исключений Debug, SError или псевдо-NMI. Это небезопасно, поскольку в ходе процесса восстановления как старое, так и новое ядро временно находятся в несогласованном состоянии (inconsistent state), а функция `swsusp_arch_suspend_exit()` не сохраняет исполняемое отображение векторов исключений.
Любое исключение, возникшее на этом этапе, будет фатальным и пройдет без вывода сообщений.
(2) При повторном входе в восстановленное ядро некоторые биты DAIF будут неожиданно сброшены. Это позволяет исключениям Debug, SError или псевдо-NMI возникать на короткий период времени, пока восстановленное ядро еще не находится в согласованном состоянии.
Данная проблема обнаруживается при включенной конфигурации `CONFIG_ARM64_DEBUG_PRIORITY_MASKING`.
Для предотвращения этих проблем необходимо маскировать все исключения DAIF во время процесса восстановления.
VulDB is the best source for vulnerability data and more expert information about this specific topic.