Уязвимость в X.Org Server, позволяющая обойти блокировку хранителя экрана

19/01/2012 09:56

В X.Org Server 1.11 обнаружена уязвимость CVE-2012-0064, позволяющая через манипуляции с клавиатурой обойти режим блокировки экрана и получить доступ к заблокированному рабочему окружению пользователя, сообщает opennet.ru. Проблема проявляется в дистрибутивах, перешедших на X.Org Server 1.11 (Fedora 16, Arch Linux, Gentoo, тестовые выпуски Ubuntu 12.04 и Debian Wheezy), для большинства хранителей экрана и систем блокировки экрана, включая gnome-screensaver (GNOME) и kscreenlocker (KDE). Проблема вызвана тем, что в выпуске X.Org Server 1.11 в состав XKB была интегрирована функция принудительного завершения работы процесса, который обрабатывает текущий ввод. Функция не отражена в официальной пользовательской документации и предназначена для отладочных целей при разработке программ, эксклюзивно перехватывающих ввод (при зависании таких программ ранее было не обойтись без перезапуска X-сервера). Примечательно, что до 2008 года в состав X.Org Server входила похожая функция, управляемая опцией "Option AllowClosedownGrabs" (Ctrl+Alt+Keypad-Multiply), но данная функция была по умолчанию отключена и позднее совсем удалена из X.Org. Работа программ блокировки экрана сводится к обеспечению постоянного перекрытия текущего содержимого рабочего стола через создание окна в полноэкранном режиме и перехвата всех событий ввода. Используя вышеотмеченную функцию, активируемую через специальную клавиатурную комбинацию (Ctrl+Alt+F11), можно принудительно завершить работу процесса, обслуживающего блокировку экрана, и таким образом получить доступ к рабочему столу без ввода пароля. Кроме того, среди появившихся в X.Org Server 1.11 отладочных функций также представлена возможность отключение эксклюзивного захвата событий ввода (Ctrl+Alt+F10), которую также можно использовать для обхода хранителя экрана. В качестве обходного пути по защите от проявления уязвимости предлагается вручную отредактировать конфигурацию xkb и удалить из неё привязки клавиатурных комбинаций к событиям XF86Ungrab и XF86ClearGrab. Другим методом является использование для блокирования экрана в отдельной консоли программы vlock, которая блокирует переключение между виртуальными консолями.
Подробности