Comments 84
OpenSUSE 11.4 — X.Org 1.9.3 — не работает
Debian squeeze — X.org 1.7.7 — не работает
Debian squeeze — X.org 1.7.7 — не работает
Больше похоже на фичу, чем на баг.
Ну да, разблокировка существенно упростилась.
На самом деле так и есть -это фича.
Лок работает следующим образом — разворачивается на весь экран и перехватывает все нажатия клавиатуры.
А комбинация CTRL + ALT + * или CTRL + ALT + F11 предназначена для убивания приложения, которое захватило ваш экран.
Лок работает следующим образом — разворачивается на весь экран и перехватывает все нажатия клавиатуры.
А комбинация CTRL + ALT + * или CTRL + ALT + F11 предназначена для убивания приложения, которое захватило ваш экран.
Ctrl+Alt+F11 кидает на tty11
За такие фичи надо отрывать яйца.
Было бы такое в винде, трояны локеры были бы не страшны.
Ну несовсем, это как ломиться в закрытую дверь, а она, блин, с другой стороны открывается.
Тут в большей степени несовершенство метода блокировки. Развернулся на весь экран и перехватывает все нажатия, никак его не закрыть — нужно убить негодяя. Вот собственно зачем нужна данная фича. А то что он локер, это уже его проблемы :)
Тут в большей степени несовершенство метода блокировки. Развернулся на весь экран и перехватывает все нажатия, никак его не закрыть — нужно убить негодяя. Вот собственно зачем нужна данная фича. А то что он локер, это уже его проблемы :)
ArchLinux, X.org 1.11.3-1 — не получилось повторить
X -version
Debian testing, X.Org X Server 1.11.3.901 (1.11.4 RC 1) — работает.
X.Org — просто добавь воды.
Но эта же нужно получить физический доступ к машине! Красненьким.
Добавьте в ~/.Xmodmap строчку
затем:
или перезапустите X
код 63 узнал с помощью утилиты xev
keycode 63 =
затем:
$ xmodmap ~/.Xmodmap
или перезапустите X
код 63 узнал с помощью утилиты xev
упс, должно быть
keycode 63 = KP_Multiply
иначе * не работает Лучше даже так:
keycode 63 = KP_Multiply NoSymbol KP_Multiply NoSymbol
keycode 106 = KP_Divide NoSymbol KP_Divide NoSymbol
А ещё помогает
sudo nano /usr/share/X11/xkb/compat/xfree86
// interpret XF86_ClearGrab {
// action = Private(type=0x86, data=«ClsGrb»);
// };
sudo nano /usr/share/X11/xkb/compat/xfree86
// interpret XF86_ClearGrab {
// action = Private(type=0x86, data=«ClsGrb»);
// };
Gentoo — самосборная.
x11-base/xorg-server-1.11.2-r2
Не проявилась…
x11-base/xorg-server-1.11.2-r2
Не проявилась…
Думаю, еще может зависеть от того, чем блокируется экран.
Например, не работает на X.Org X Server 1.11.2 + slimlock 0.10.1 из AUR @ Arch из репов.
Например, не работает на X.Org X Server 1.11.2 + slimlock 0.10.1 из AUR @ Arch из репов.
На некоторых системах так же работает и CTRL + ALT + / (на numpad'е)
У меня не работает. Archlinux, xorg 1.11.3, блокировщик kde.
Debian уже пофиксили
xorg-server (2:1.11.3.901-2) unstable; urgency=high
* Revert «XKB: Add debug key actions for grabs & window tree» to stop
making it possible to bypass X screen locking programs. This is
CVE-2012-0064 (Closes: #656410).
* Set urgency to “high” accordingly.
— Cyril Brulebois Thu, 19 Jan 2012 10:47:49 +0100
xorg-server (2:1.11.3.901-2) unstable; urgency=high
* Revert «XKB: Add debug key actions for grabs & window tree» to stop
making it possible to bypass X screen locking programs. This is
CVE-2012-0064 (Closes: #656410).
* Set urgency to “high” accordingly.
— Cyril Brulebois Thu, 19 Jan 2012 10:47:49 +0100
А прикиньте сколько висел такой баг в винде и какая оперативность здесь.
Я на дебиане сижу 12 лет, поэтому не могу прикинуть сколько времени фиксят винду )
Думаю этого не могут прикинуть даже те кто 12 лет сидит на винде)
Большой плюс никсов, что пофиксить можно самостоятельно на уровне юзера, выше уже есть рецепт. В винде же только ждать, как я понимаю.
На винде бы хотфикс был бы моментальным, я гарантирую это.
Fedora 16 работает, блин! (
Фух, я в безопасности. У меня на клавиатуре ноутбука символа * нет :-)
Arch — Fixed
% pacman -Qi xkeyboard-config
Name : xkeyboard-config
Version : 2.4.1-3
URL : http://www.freedesktop.org/wiki/Software/XKeyboardConfig
Licenses : custom
Groups : None
Provides : xkbdata
Depends On : xorg-xkbcomp
Optional Deps : None
Required By : libxklavier xorg-server-common
Conflicts With : xkbdata
Replaces : xkbdata
Installed Size : 5640.00 KiB
Packager : Florian Pritz <bluewind@xinu.at>
Architecture : any
Build Date : Thu 19 Jan 2012 01:56:02 PM MSK
Install Date : Fri 20 Jan 2012 01:42:09 PM MSK
Install Reason : Installed as a dependency for another package
Install Script : No
Description : X keyboard configuration files
для Gentoo:
Версия с багом — 2.4.1-r2
Исправленная версия -2.4.1-r3
Версия с багом — 2.4.1-r2
Исправленная версия -2.4.1-r3
[I] x11-misc/xkeyboard-config
Available versions: 2.1 2.2.1-r1 2.3 2.4.1-r2 2.4.1-r3
Installed versions: 2.4.1-r3(10:34:01 PM 01/20/2012)
Homepage: www.freedesktop.org/wiki/Software/XKeyboardConfig
Description: X keyboard configuration database
А почему на скриншоте Убунта, если она-то как раз и не подвержена багу?
Хабракат умело выставлен. Интригует ;)
не подвержен данной уязвимости
позволяющая не обладая паролем проходит его запрос
Ну что это за перевод? Потрудились бы хотя бы вручную подкорректировать.
xxx: Интересно, а что делает сочетание клавиш Ctrl + Alt + Backspace?
* xxx has quit
* xxx has quit
РЕШЕТО
(2:2183)$ p -Q xorg-server
Пароль:
xorg-server 1.11.3-1
slimlock не смог обойти.
P.S. archlinux
Пароль:
xorg-server 1.11.3-1
slimlock не смог обойти.
P.S. archlinux
Linux Mint 12 Lisa, X.Org X Server 1.11.2.902 (1.11.3 RC 2) фича присутствует
У BSD'шников все спокойно, ибо в портах до сих пор xorg-server 1.7.7. ;-)
F16, репозиторий Test Updates отключен — получается. Хотя говорят, в RFR фикс прилетел уже утром.
У меня в Windows Seven подобная фича есть. После нажатия Win+L рабочий стол блокируется и без ввода пароля в систему не пускает. Но стоит нажать волшебную кнопочку «Переключить пользователя», как мне говорят «Добро пожаловать» и рабочий стол разблокируется =)
Подозреваю, что дело в том, что включен автологин и других пользователей в системе не зарегистрировано. Тем не менее забавно.
Подозреваю, что дело в том, что включен автологин и других пользователей в системе не зарегистрировано. Тем не менее забавно.
Баг пофиксил. Вырвал клавиши из нумпада.
Надо было просто отпилить!
По теме поста — Убунта 10.04.3 LTS, х.орг — 1.7.6, gnome-screensaver 2.30
На ноуте повторить не получилось, возможно, потому что нумпадные знаки набираются через Fn,
а 4 одновременных кнопки могут пересекатся по шине и не различатся корректно.
Хотя, проверил только что,
state 0x1c, keycode 63 (keysym 0x1008fe21, XF86_ClearGrab), same_screen YES, тоесть, код корректный.
По теме поста — Убунта 10.04.3 LTS, х.орг — 1.7.6, gnome-screensaver 2.30
На ноуте повторить не получилось, возможно, потому что нумпадные знаки набираются через Fn,
а 4 одновременных кнопки могут пересекатся по шине и не различатся корректно.
Хотя, проверил только что,
state 0x1c, keycode 63 (keysym 0x1008fe21, XF86_ClearGrab), same_screen YES, тоесть, код корректный.
Предлагаю вашему вниманию моё небольшое независимое расследование причин, которые привели к появлению данного «бага».
Фича убивания приложений, захвативших клавиатуру, была в Xorg испокон веков. Вот например мануал на xorg.conf аж 2004 года. Обратите внимание на опции «AllowDeactivateGrabs» и «AllowClosedownGrabs» — действия срабатывают по нажатию тех же самых горячих клавиш. Обратите также внимание, что прямо там, в мануале, сказано, что включение этих возможностей может привести к обходу скринсейверов и блокираторов экрана:
Более того, в то время в Х-сервере имелось специальное API, которое позволяло локерам отключать эти комбинации клавиш, даже если они были включены в конфиге. Все счастливы.
Затем, в преддверии выхода xorg-server-X11R7-1.6, эту функциональность стали выпиливать (2008 год):
Update the Allow*Grabs documentation for xf86misc removal.
Remove the remainder of grab deactivation and closedown.
Зачем и почему это было сделано, я так и не смог раскопать. Загадочным образом, на 2008 год в почтовых архивах Xorg доступен только март месяц. Видно только, что оба коммита произвел некто Adam Jackson из RedHat.
Через некоторое время (2009 год) то тут, то там, то сям стали появляться сообщения пользователей, недовольных таким положением дел. Причем, в качестве причин назывались не только какие-нибудь там «закрыть зависшее приложение», а вполне себе серьезные «невозможно нормально отлаживать графические приложения, использующие захват клавиатуры» (если во время действия захвата сработает точка останова в отладчике, получаем дедлок — клавиатура/мышь недоступны, т.к. захвачены программой; программа никогда не освободит захват, т.к. остановлена отладчиком).
В этом письме David Campbell спрашивает «А планируется ли вообще что-нибудь взамен утраченных функций? И можно ли, пока этой замены нет, вернуть всё назад?»
На что Peter Hutterer ему отвечает, что «возвращать ничего не будем, потому что этот код не вписывается в новую архитектуру X-сервера, но возможно в будущем данная функциональность будет реализована немного иначе».
И вот, настал 2011 год. В июне Daniel Stone отправляет в список рассылки xorg-devel свой патч, который добавляет четыре новых «приватных действия» (private XKB action) в X-Server:
Также он пишет, что для использования этих действий, необходимо назначить им сочетание клавиш:
Фича убивания приложений, захвативших клавиатуру, была в Xorg испокон веков. Вот например мануал на xorg.conf аж 2004 года. Обратите внимание на опции «AllowDeactivateGrabs» и «AllowClosedownGrabs» — действия срабатывают по нажатию тех же самых горячих клавиш. Обратите также внимание, что прямо там, в мануале, сказано, что включение этих возможностей может привести к обходу скринсейверов и блокираторов экрана:
Note that the options AllowDeactivateGrabs and AllowClosedownGrabs will allow users to remove the grab used by screen saver/locker programs. An API was written to such cases. If you enable this option, make sure your screen saver/locker is updated.
Более того, в то время в Х-сервере имелось специальное API, которое позволяло локерам отключать эти комбинации клавиш, даже если они были включены в конфиге. Все счастливы.
Затем, в преддверии выхода xorg-server-X11R7-1.6, эту функциональность стали выпиливать (2008 год):
Update the Allow*Grabs documentation for xf86misc removal.
Remove the remainder of grab deactivation and closedown.
Зачем и почему это было сделано, я так и не смог раскопать. Загадочным образом, на 2008 год в почтовых архивах Xorg доступен только март месяц. Видно только, что оба коммита произвел некто Adam Jackson из RedHat.
Через некоторое время (2009 год) то тут, то там, то сям стали появляться сообщения пользователей, недовольных таким положением дел. Причем, в качестве причин назывались не только какие-нибудь там «закрыть зависшее приложение», а вполне себе серьезные «невозможно нормально отлаживать графические приложения, использующие захват клавиатуры» (если во время действия захвата сработает точка останова в отладчике, получаем дедлок — клавиатура/мышь недоступны, т.к. захвачены программой; программа никогда не освободит захват, т.к. остановлена отладчиком).
В этом письме David Campbell спрашивает «А планируется ли вообще что-нибудь взамен утраченных функций? И можно ли, пока этой замены нет, вернуть всё назад?»
На что Peter Hutterer ему отвечает, что «возвращать ничего не будем, потому что этот код не вписывается в новую архитектуру X-сервера, но возможно в будущем данная функциональность будет реализована немного иначе».
И вот, настал 2011 год. В июне Daniel Stone отправляет в список рассылки xorg-devel свой патч, который добавляет четыре новых «приватных действия» (private XKB action) в X-Server:
* PrGrbs: распечатать в лог-файл список активных захватов устройств ввода
* DeaGrb: отключить все захваты
* KilGrb: убить все приложения, у которых есть захваты
* PrWins: вывести в файл древовидный список окон
Также он пишет, что для использования этих действий, необходимо назначить им сочетание клавиш:
To use these, you need to modify your XKB maps, e.g. the following to
have Ctrl+Alt+Enter print all currently active grabs:
— compat/xfree86:
interpret XF86DOS {
action = Private(type=0x86, data=«PrGrbs»);
};
— symbols/pc:
key { type=«CTRL+ALT», [ Return, XF86DOS ] };
Но мы с вами помним, что отключение захватов и убивание приложений давным-давно уже было реализовано. По иронии судьбы, реализовано оно было через этот же механизм «приватных действий». Соответственно, действия «отключить все захваты» и «убить всех захватчиков» уже имели свои идентификаторы. О чем и напомнил Даниэлю… Peter Hutterer:
compat/xfree86 still has the stuff for «Ungrab» and «ClsGrab».
#define XF86XK_Ungrab 0x1008FE20 /* force ungrab */
#define XF86XK_ClearGrab 0x1008FE21 /* kill application with grab */
we should keep using them if possible.
Даниел, разумеется, согласился и заменил в своем патче «DeaGrb» на «Ungrab», а «KilGrb» на «ClsGrb». Вместе с другими поправками патч попал в master-ветку git-репозитория Xorg.
Но никто не заметил, что для старых «Ungrab» и «ClsGrb» уже были назначены сочетания клавиш — те самые ctrl + alt + / и ctrl + alt + *. Только в то время они были по-умолчанию выключены и включались через конфиг, поэтому никого не пугали. А автор нового патча предполагал, что сам факт назначения клавиш на эти действия будет являться подтверждением желания пользователя их использовать, но он не знал, что они уже назначены по умолчанию.
Результат, как говорится, на лицо.
Как же правильно исправить этот баг? Правильно! Снять назначенные клавиши, что и предлагают сделать в разных местах Сети.
Что же сделали, например, в Debian (спасибо porzione за выдержку из лога)? Они полностью откатили этот патч! То есть пользователи Debian теперь даже если захотят, не смогут включить возможность противостоять «захватчикам» их экрана. :)
Такая вот непридуманная история, господа.
Sign up to leave a comment.
В XORG 1.11 найдена критическая уязвимость