В исходниках X.Org Server нашли забавный баг, который фактически делает бессмысленной работу скринсейверов с блокировкой экрана. Любой скринсейвер с блокировкой экрана, будь то gnome-screensaver, kscreenlocker, slock, slimlock или другой, выключается сочетанием клавиш клавиш Ctrl-Alt-* (звёздочка на цифровой клавиатуре).

На самом деле это не совсем баг, а побочный эффект срабатывания специально задуманной функции PrintDeviceGrabInfo, которая появилась в результате этого коммита. Он был добавлен в основную ветку в июне 2011 года и присутствует во всех версиях Xorg, начиная с 1.10.99.902.


# grep -Rl '^PrintDeviceGrabInfo' \
xorg-server-1.10.3.901 \
xorg-server-1.10.99.902 \
xorg-server-1.11.3
xorg-server-1.10.99.902/dix/grabs.c
xorg-server-1.11.3/dix/grabs.c

Получается, что Ctrl-Alt-* работает на всех системах, где установлен xorg-server-1.10.99.902 или более свежий, а он в настоящее время применяется почти во всех вариантах Linux и BSD. Правда, в некоторых популярных версиях Linux работают более старые версии Xorg, так что они не подвержены уязвимости. Например, даже в последней версии Ubuntu 11.10 нет такого бага.

На самом деле, это серьёзная уязвимость, потому что блокировкой экрана люди пользуются не просто так, а чтобы блокировать несанкционированный доступ в систему во время своего отсутствия. Если же блокировка снимается так просто, то никакой защиты нет вообще.

Хуже того, наличие такой дыры в течение долгого времени (семь месяцев) вообще может подорвать доверие к безопасности Linux. А что, если кто-то знал об этом «волшебном» сочетании клавиш и раньше, и пользовался своими знаниями?

Сейчас-то, конечно, баг в Xorg быстро закроют, а некоторые дистрибутивы Linux, не дожидаясь этого, выпустили собственные патчи: например, Arch Linux выпустил патч вчера днём.



Оставить мнение