An Easy But Serious Screensaver Security Problem In X.Org
A blog post at aeroxteam.fr initially uncovered and detailed this apparent vulnerability. A commit to XKB for X.Org Server 1.11 adds a few debug key actions for grabs and the window tree. One of the four new XKB actions allowed is killing clients with active grabs, which is what most (or perhaps all) desktop environment screensavers rely upon for their screensaver lock -- just ensuring they have the top window and are catching all input events. One of the other four options is unleashing all active grabs. While a debugging feature, both of these are appearing by default in some of the leading Linux distributions.
CTRL+ALT+F10 by default in the xorg-server will now ungrab all currently active grabs and CTRL+ALT+F11 will kill clients with active grabs, if you're running a stock XKB map. (Additionally as part of this commit, CTRL+ALT+F9 will print active grabs to the log file and CTRL+ALT+F12 will dump the current window tree to the log file). Another option is using CTRL+ALT+Keypad-Multiply for this bug. This is on X.Org Server 1.11 and it also is appearing that way in the Git for what will become X.Org Server 1.12 this March. This code was previously in the X.Org Server tree years ago as a debugging utility too, but back then it was disabled by default and only could be enabled if set within the xorg.conf.
As mentioned in the aforelinked blog post by "Gu1", this new debugging functionality isn't clearly documented nor can it even be disabled easily. To disable this screensaver workaround, you must edit the XKB keyboard mapping configuration manually to remove XF86Ungrab and XF86ClearGrab mentions. The commit was authored by Daniel Stone and sent into the xserver Git this past June.
Working on X while drinking Phoronix beer... A bad combination? XDC2011 Chicago.
Embedded below is an iPhone video I quickly recorded tonight after carrying out a clean install of Debian "Wheezy" on one of the Phoronix systems. Wheezy is currently using X.Org Server 1.11.1 and tested was the GNOME Shell. No package or configuration changes were made to the Debian Linux installation. After locking the screen of the Debian desktop, it was simply a matter of pressing the CTRL+ALT+Keypad-Multiply combination and you're back at the desktop without inputting any password.
In summary, if your Linux distribution is using X.Org Server 1.11+ -- it's been out there for four months ago while the commit introducing the potential problem has been in Git since last June -- (you can find out by running X -version) and the XKB mapping has the standard debugging features, you may be at risk of your screensaver lock being useless if anyone were to just hit a simple keyboard combination, since then they can be brought to your desktop with full access and no password being needed. This problem wouldn't be limited to Linux but any operating system using the modern (v1.11+) X.Org Server, such as the *BSDs and Solaris.
At least the Wayland Display Server hopes to have a proper screensaver implementation...
Update: This issue is additionally being confirmed now within the forums.