Критическая уязвимость в загрузчике Grub2 позволяет обходить защиту паролем

в 17:48, , рубрики: 0-day, grub, grub2, Блог компании Positive Technologies, информационная безопасность, системное администрирование, уязвимости

Критическая уязвимость в загрузчике Grub2 позволяет обходить защиту паролем - 1

Исследователи безопасности Гектор Марко (Hector Marco) и Исмаэль Риполл (Ismael Ripoll) опубликовали информацию об обнаруженной ими 0-day уязвимости в популярном загрузчике Grub2, который используется в большинстве Linux-системах. Эксплуатация уязвимости позволяет получить доступ к аварийной консоли Grub2 в обход пароля. Это, в свою очередь, открывает злоумышленнику возможность проведение атаки направленной на повышение привилегий в систем и доступа ко всей информации.

Описание уязвимости

Целочисленному переполнению подвержены функции загрузчика grub_password_get() и grub_username_get(). Из-за пропущенной в коде проверки, при последовательном нажатии Backspace 28 раз происходит «затирание» нулями памяти с отрицательным смещением.В итоге происходит затирание памяти стека и происходит поэтапное «перепрыгивание» выполнения на разные адреса/смещения, что в конце концов приводит к исполнению инструкции retw, и в результате удачная эксплуатация приводит к запуску встроенной оболочки.

Критическая уязвимость в загрузчике Grub2 позволяет обходить защиту паролем - 2

Исследователи провели proof-of-concept-демонстрацию, эксплуатирующую ошибку в функции grub_username_get() — после нажатия клавиши Backspace 28 раз и один раз — клавиши Enter, они получили доступ к полностью функциональной аварийной консоли Grub2.

Более того, Марко и Риполл сумели получить полный доступ к операционной системе даже несмотря на то, что у них не было реального пароля пользователя. Для этого они изменили условия работы функции is_authenticated(), которая проверяет факт прохождения аутентификации пользователем — сделать это можно с помощью команды Grub2 write_word:

Критическая уязвимость в загрузчике Grub2 позволяет обходить защиту паролем - 3

К чему может приводить эксплуатация ошибки

По мнению исследователей, обнаруженная уязвимость может быть использована для проведения APT-атак, целью которых может быть похищение критически важных данных. Для того, чтобы получить доступ к информации, злоумышленники, имеющие доступ к компьютеру, могут воспользоваться ошибкой в работе Grub2, чтобы установить на него вредоносный софт.

Марко и Риполл также создали proof-of-concept-демонстрацию подобной атаки. Для этого была разработана модифицированная библиотека Firefox libplc4.so, которая создает новый процесс и запускает консоль управления на порте 53. Затем эта библиотека была записана на флеш-накопитель и скопирована на компьютер-жертву, при этом оригинальная библиотека была заменена.

Критическая уязвимость в загрузчике Grub2 позволяет обходить защиту паролем - 4

После того, как пользователь запустит Firefox, будет активирована консоль управления, дающая атакующему доступ к данным пользователя:

Критическая уязвимость в загрузчике Grub2 позволяет обходить защиту паролем - 5

Как защититься

Уязвимы версии загрузчика с 1.98 по 2.02. Для того, чтобы проверить, подвержена ли конкретная система описанной уязвимости, необходимо в тот момент, когда Grub запросит имя пользователя нажать клавишу Backspace 28 раз, а затем нажать Enter. Если после этого компьютер перезагрузится или запустится аварийная консоль (rescue shell), то система уязвима.

Исследователи оповестили крупных разработчиков Linux-based операционных систем, а также разработали патч, который позволяет исправить ошибку.

Отметим, что похожая уязвимость ранее была обнаружена в мобильной ОС Android — она позволяла «пройти» экран блокировки телефона, использовав очень длинный пароль. Кроме того, детом 2015 года была обнаружена ошибка в работе системы безопасности игрового магазина Steam. Злоумышленник мог скромпрометировать учетную запись пользователя Steam благодаря некорректной работе функции восстановления пароля — система принимала в качестве верного кода даже пустое значение.

Автор: Positive Technologies

Источник


* - обязательные к заполнению поля


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js