Уязвимость в ядре Linux, позволяющая обойти ограничения режима Lockdown

В ядре Linux выявлена уязвимость (CVE-2022-21505), позволяющая легко обойти механизм защиты Lockdown, который ограничивает доступ пользователя root к ядру и блокирует пути обхода UEFI Secure Boot. Для обхода предлагается использовать подсистему ядра IMA (Integrity Measurement Architecture), предназначенную для проверки целостности компонентов операционной системы по цифровым подписям и хэшам.

В режиме lockdown ограничивается доступ к /dev/mem, /dev/kmem, /dev/port, /proc/kcore, debugfs, отладочному режиму kprobes, mmiotrace, tracefs, BPF, PCMCIA CIS (Card Information Structure), некоторым интерфейсам ACPI и MSR-регистрам CPU, блокируются вызовы kexec_file и kexec_load, запрещается переход в спящий режим, лимитируется использование DMA для PCI-устройств, запрещается импорт кода ACPI из переменных EFI, не допускаются манипуляции с портами ввода/вывода, в том числе изменение номера прерывания и порта ввода/вывода для последовательного порта.

Суть уязвимости в том, что при использовании загрузочного параметра “ima_appraise=log”, допускается вызов kexec для загрузки новой копии ядра, если в системе не активен режим Secure Boot и режим Lockdown используется обособленно от него. IMA недопускает включение режима “ima_appraise” при активном Secure Boot, но не учитывает возможность использования Lockdown отдельно от Secure Boot.

Release. Ссылка here.