Categories: Уязвимости

Уязвимость в Cryptsetup, позволяющая получить доступ к root shell

[protected] В пакете Cryptsetup, применяемом для шифрования дисковых разделов в Linux, выявлена уязвимость
(CVE-2016-4484), позволяющая получить доступ в командную оболочку начального загрузочного окружения initramfs или Dracut с правами пользователя root. Проблема вызвана ошибкой в коде скрипта разблокировки и проявляется только при использовании шифрования LUKS (Linux Unified Key Setup) на системных разделах.

Для эксплуатации уязвимости достаточно нажать и удерживать клавишу Enter в ответ на запрос ввода пароля для доступа к зашифрованным разделам. После примерно 70 секунд удерживания Enter пользователь будет выброшен в root shell загрузочного окружения. Атака хорошо повторяема и не зависит от настроек или системного окружения. Для атаки требуется физический доступ к системе, но не исключаются и варианты удалённой эксплуатации облачных окружений. Из систем для которых уязвимость предоставляет угрозу также упоминаются автоматизированные рабочие места, пункты совместного доступа к интернет, интернет-киоски, справочные автоматы и другие публично досутпные устройства с клавиатурой.

Несмотря на то, что полный доступ предоставляется только в окружение начальной загрузки initramfs или Dracut, атакующий имеет возможность скопировать, изменить или вывести из строя содержимое незашифрованных дисков (зашифрованные разделы остаются недоступны). Например, обычно без шифрования оставляется раздел /boot, что позволяет подменить загрузочные файлы или оставить исполняемый файл с правами SetUID root для повышения привилегий локального пользователя. Также можно настроить сетевое соединение и скопировать зашифрованный раздел для осуществления подбора пароля.

Проблема вызвана неверной обработкой превышения лимита на максимальное число попыток монтирования — вместо предложения выполнить перезагрузку, осуществлялся выход из скрипта проверки c кодом ошибки, что приводило к продолжению попыток смонтировать раздел и выводу консоли восстановления (root shell) после превышения лимита на число неудачных попыток. В настоящее время обновления для пакета Cryptsetup в дистрибутивах пока не выпущены (Debian, RHEL, Ubuntu, Fedora, CentOS, SUSE, openSUSE). В качестве временной меры защиты можно настроить в grub загрузку ядра с параметром «panic» (в GRUB_CMDLINE_LINUX_DEFAULT добавить «panic=5» и запустить grub-install), после чего загрузочный скрипт инициирует перезагрузку вместо вывода root shell.

 
[/protected]

HelpUTeam

Share
Published by
HelpUTeam

Recent Posts

Windows 10 стала работать медленнее после установки обновления? Исправим это

Ваш компьютер на Windows 10 перестал быть быстрым после обновления системы? Мы подскажем, как устранить…

3 года ago

Описание приложения-чата по приглашениям Clubhouse

Это приложение для iPhone основано на приглашениях и аудио. С его помощью можно всё равно…

3 года ago

Изменение почтового клиента по умолчанию в iOS 14 на Outlook, Spark, Gmail и другие

Одним из самых значительных изменений в операционной системе iOS 14 является возможность менять приложения по…

4 года ago

Включение пузырей уведомлений в чатах на Android 11

В системе Android 10 появился фреймворк для пузырей чатов, популярность которым принёс Messenger. Новая система…

4 года ago

Как настроить беспроводную отладку в Android 11

От загрузки в режим Fastboot при помощи одной команды до установки модов без рута, есть…

4 года ago

Главные проблемы Android 11 Beta и следует ли устанавливать её

Бета-версия операционной системы Android 11 в настоящее время доступна для устройств Google Pixel. Нужно посетить…

4 года ago