ASA-202106-43 лог внешний источник raw-данные
[ASA-202106-43] grub: выполнение произвольного кода |
---|
Рекомендация по безопасности UBLinux ASA-202106-43
==================================================
Уровень : Средний
Дата : 2022-10-18
CVE-ID : CVE-2020-14372 CVE-2020-25632 CVE-2020-25647 CVE-2020-27749
CVE-2020-27779 CVE-2021-20225 CVE-2021-20233
Пакет : grub
Тип : выполнение произвольного кода
Удалённо : Нет
Ссылка : https://security.ublinux.ru/AVG-34
Сводка
=======
Пакет grub до версии 2:2.06-1 имеет уязвимость выполнение произвольного
кода including выполнение произвольного кода and обход ограничения
доступа.
Решение
==========
Обновление до версии 2:2.06-1.
# pacman -Syu "grub>=2:2.06-1"
Проблема(ы) была устранена в апстриме в версии 2.06.
Путь для обхода
==========
Нет.
Описание
===========
- CVE-2020-14372 (выполнение произвольного кода)
GRUB2 позволяет использовать команду acpi, даже если прошивка
сигнализирует о безопасной загрузке. Злоумышленник с локальными
привилегиями root может поместить небольшой SSDT в /boot/efi и изменить
grub.cfg, чтобы поручить grub загрузить указанный SSDT. Затем SSDT
запускается ядром и перезаписывает конфигурацию блокировки ядра,
позволяя злоумышленнику загружать неподписанные модули ядра и
неподписанный код kexec.
- CVE-2020-25632 (выполнение произвольного кода)
Реализация rmmod для grub2 ошибочна, позволяя злоумышленнику выгрузить
модуль, используемый в качестве зависимости, не проверяя, загружен ли
какой-либо другой зависимый модуль. Это приводит к сценарию
использования после освобождения, который может позволить
злоумышленнику выполнить произвольный код и обойти защиту безопасной
загрузки.
- CVE-2020-25647 (выполнение произвольного кода)
grub_usb_device_initialize() вызывается для обработки инициализации
USB-устройства. Он считывает необходимые дескрипторы с USB-устройства и
использует эти данные для заполнения некоторых структур данных USB.
grub_usb_device_initialize() выполняет очень небольшую проверку границ
и просто предполагает, что USB-устройство обеспечивает разумные
значения. Такое поведение может вызвать повреждение памяти. При
правильном использовании это приведет к выполнению произвольного кода,
что позволит злоумышленнику обойти механизм безопасной загрузки.
- CVE-2020-27749 (выполнение произвольного кода)
grub_parser_split_cmdline() расширяет имена переменных, представленные
в предоставленной командной строке, до их соответствующего содержимого
переменных и использует буфер стека размером 1 КБ для временного
хранения без достаточной проверки границ. Если функция вызывается с
командной строкой, которая ссылается на переменную с достаточно большой
полезной нагрузкой, возможно переполнение буфера стека, повреждение
кадра стека и управление выполнением. Злоумышленник может использовать
это, чтобы обойти защиту Secure Boot.
- CVE-2020-27779 (обход ограничения доступа)
Команда cutmem GRUB2 не поддерживает блокировку безопасной загрузки.
Это позволяет привилегированному злоумышленнику удалять диапазоны
адресов из памяти, создавая возможность обойти защиту безопасной
загрузки после надлежащей сортировки схемы памятиgrub.
- CVE-2021-20225 (выполнение произвольного кода)
Анализатор опций в GRUB2 позволяет злоумышленнику записывать за конец
буфера, выделенного в куче, вызывая определенные команды с большим
количеством конкретных кратких форм опций.
- CVE-2021-20233 (выполнение произвольного кода)
В коде рендеринга меню GRUB2 есть ошибка setparam_prefix() в коде
рендеринга меню. Он выполняет вычисление длины в предположении, что для
выражения одинарной кавычки потребуется 3 символа, тогда как на самом
деле требуется 4 символа. Это позволяет злоумышленнику испортить память
на один байт для каждой кавычки во входных данных.
Влияние
======
Когда безопасная загрузка включена, полное нарушение целостности
перспективы могут быть достигнуты за счет злонамеренного использования
существующих команд, модули с боковой загрузкой, команда acpi, rmmod,
ссылки на переменные и парсеры опций.
Рекомендации
==========
https://lists.gnu.org/archive/html/grub-devel/2021-03/msg00007.html
https://git.savannah.gnu.org/gitweb/?p=grub.git;a=commit;h=3e8e4c0549240fa209acffceb473e1e509b50c95
https://git.savannah.gnu.org/gitweb/?p=grub.git;a=commit;h=7630ec5397fe418276b360f9011934b8c034936c
https://git.savannah.gnu.org/gitweb/?p=grub.git;a=commit;h=128c16a682034263eb519c89bc0934eeb6fa8cfa
https://git.savannah.gnu.org/gitweb/?p=grub.git;a=commit;h=4ea7bae51f97e49c84dc67ea30b466ca8633b9f6
https://git.savannah.gnu.org/gitweb/?p=grub.git;a=commit;h=d298b41f90cbf1f2e5a10e29daa1fc92ddee52c9
https://git.savannah.gnu.org/gitweb/?p=grub.git;a=commit;h=2a330dba93ff11bc00eda76e9419bc52b0c7ead6
https://git.savannah.gnu.org/gitweb/?p=grub.git;a=commit;h=2f533a89a8dfcacbf2c9dbc77d910f111f24bf33
https://security.ublinux.ru/CVE-2020-14372
https://security.ublinux.ru/CVE-2020-25632
https://security.ublinux.ru/CVE-2020-25647
https://security.ublinux.ru/CVE-2020-27749
https://security.ublinux.ru/CVE-2020-27779
https://security.ublinux.ru/CVE-2021-20225
https://security.ublinux.ru/CVE-2021-20233
|