Исследователи из компании Eclypsium выявили две узявимости в контроллерах BMC (Baseboard Management Сontroller), оснащённых прошивками MegaRAC от компании American Megatrends (AMI), которые применяются многими производителями серверов для организации автономного управления оборудованием. Уязвимости позволяют неаутентифицированному атакующему получить доступ к управляющему окружению BMC и выполнить свой код на уровне прошивки через отправку специально оформленного запроса на HTTP-порт управляющего интерфейса Redfish (пришёл на смену IPMI). Как правило, доступ к BMC открывается только для локальной сети или сети датацентра, но случается, что его не закрывают и для обращения из глобальной сети. Эксплуатация уязвимостей в BMC также может быть произведена при наличии доступа к локальной операционной системе с целью повреждения оборудования. Проблемы устранены в обновлениях прошивки AMI MegaRAC BMC SPx_13.2 и SPx_12.4.
BMC представляет собой устанавливаемый в серверах специализированный контроллер, имеющий свой CPU, память, хранилище и интерфейсы опроса датчиков, который предоставляет низкоуровневый интерфейс для мониторинга и управления серверным оборудованием. Так как устанавливаемое в датацентрах оборудование часто унифицировано, атака через BMC может быть произведена сразу на все сервера датацентра после компрометации одной из систем. Уязвимости также могут использоваться для атак из гостевых систем на облачных провайдеров или системы виртуализации.
Получение злоумышленником доступа к программному окружению BMC, которое функционирует независимо от работающей на сервере операционной системы, позволяет реализовать такие сценарии атак, как замена прошивок, физическое повреждение оборудования, удалённая загрузка своей системы по сети, манипуляции в консоли удалённого доступа (например, наблюдение за действиями администратора в системе и подстановка ввода), повреждение оборудования (например, через повышение подаваемого на процессор напряжения или “окирпичивание” прошивки), нарушение стабильной работы (инициирование перезагрузок и отключения питания), использование окружения BMC в качестве плацдарма для атак на другие системы.
Выявленные уязвимости:
- CVE-2023-34329 – обход аутентификации через отправку изменённых HTTP-заголовков при отправке запроса к web-интерфейсу Redfish. Суть уязвимости в том, что Redfish поддерживает два режима аутентификации: “Basic Auth” при обращении из вне и “No Auth” при обращении с IP-адресов внутреннего интерфейса или интерфейса USB0. В прошивках, в которых активен режим “No Auth”, атакующий может через изменение HTTP-заголовка применить данный режим при обращении к API из внешней сети. Например, атакующий без аутентификации может воспользоваться API “/redfish/v1/AccountService/Accounts” API для создания новой учётной записи и затем использовать её для полноценного доступа к интерфейсу Redfish.
- CVE-2023-34330 – подстановка кода через интерфейс Dynamic Redfish Extension. В реализации Redfish от компании AMI имеется отладочная функция для разработчиков прошивки, позволяющая с правами root выполнять код в окружении BMC-чипа, через отправку специального HTTP POST-запроса. По каким-то причинах данная отладочная функция оказалась не отключена в рабочих прошивках при выполнении запросов с локальной системы. Воспользовавшись режимом “No Auth” атакующий из локальной системы может выполнить любой код на уровне чипа BNC без прохождения аутентификации.
В сочетании с уязвимостью CVE-2023-34329 проблема позволяет удалённому атакующему, имеющему возможность отправлять сетевые запросы на HTTP-порт управляющего интерфейса BMC, симулировать отправку запроса с внутреннего сетевого интерфейса и выполнить любой код на уровне прошивки BMC.