В X.Org Server 1.11 обнаружена уязвимость, позволяющая через манипуляции с клавиатурой обойти режим блокировки экрана и получить доступ к заблокированному рабочему окружению пользователя. Проблема проявляется в дистрибутивах, перешедших на X.Org Server 1.11 (Fedora 16, Arch Linux, Gentoo, тестовый выпуск 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. В версии X.Org Server 1.11 работа комбинации Ctrl+Alt+Keypad-Multiply возвращена, при этом в Debian Wheezy распознаётся по умолчанию.

Работа программ блокировки экрана сводится к обеспечению постоянного перекрытия текущего содержимого рабочего стола через создание окна в полноэкранном режиме и перехвата всех событий ввода. Используя вышеотмеченную функцию, активируемую через специальную клавиатурную комбинацию (Ctrl+Alt+F11 или Ctrl+Alt+умножить на цифровой панели), можно принудительно завершить работу процесса, обслуживающего блокировку экрана, и таким образом получить доступ к рабочему столу без ввода пароля. Кроме того, среди появившихся в X.Org Server 1.11 отладочных функций также представлена возможность отключения эксклюзивного захвата событий ввода (Ctrl+Alt+F10), которую также можно использовать для обхода хранителя экрана.

В качестве обходного пути по защите от проявления уязвимости предлагается вручную отредактировать конфигурацию xkb и удалить из неё привязки клавиатурных комбинаций к событиям XF86_Ungrab и XF86_ClearGrab. В частности, следует закомментировать строки 44-49 в файле /usr/share/X11/xkb/compat/xfree86 с блоками "interpret XF86_Ungrab {...};" и "interpret XF86_ClearGrab {...};", после чего выполнить "setxkbmap $(setxkbmap -query | grep layout | awk '{print $2}')". Другим методом является использование для блокирования экрана в отдельной консоли программы vlock, которая блокирует переключение между виртуальными консолями.

Источник: http://www.opennet.ru/opennews/art.shtml?num=32844