关于ZAKER 融媒体解决方案 智媒短视频 合作 加入
量子位 01-21

“熊孩子”乱敲键盘就攻破了 Linux 桌面,大神:17 年前我就警告过你们

Linux 系统,居然被两个不懂任何技术的小孩 " 攻破 " 了。

他们只是在键盘和屏幕上一通乱按,就轻松绕过密码,进入了被锁定的 Linux 系统桌面。

最近,一位程序员父亲就这样,眼睁睁地看着自己的电脑被孩子 " 玩坏 "。

作为一名程序员,他首先想到的不是打骂孩子,而是——如何复现漏洞

他发现这个漏洞确实是孩子乱按导致的,在某些特殊按键组合下,Linux 的屏幕锁定进程会崩溃,从而绕过了密码。

也就是说,只要有人知道了这个漏洞,无需密码就可以偷偷打开别人已经锁定的 Linux 电脑。

他将情况反馈到官方 GitHub 上,最终这个奇怪的漏洞上周被正式修复了。

但这并不能让程序员们放心,这些年因 Linux 桌面进程崩溃导致的安全漏洞层出不穷,屡见不鲜,你永远不知道下一个 bug 会是什么。

孩子们 " 乱杀 " 的桌面系统漏洞

这两个小孩,是怎么 " 发现 " 这一漏洞的呢?

这位程序员父亲将自己的电脑锁定后,孩子们试图解锁它,就开始在电脑键盘上瞎打。

大致是这个画风

突然,屏保界面消失,孩子们成功进入了 Linux 系统。

什么?连密码都没有输入?

他让他们再演示一次。这次,孩子们同样做到了,但依旧只是 " 乱敲 " 键盘而已。

太奇怪了。

他在两个小孩离开后,自己又悄悄地试了一下,没能成功。

不过他认为,这肯定是个漏洞,因为已经亲眼见过两次了。

这位程序员父亲所用的桌面系统是 Cinnamon(Linux 桌面环境之一),他推测,Cinnamon 是不是有什么奇怪的 bug,在不输入密码的情况下也能解锁桌面。

当天晚上 10 点半,他在 Linux Mint 的 GitHub 页面上反馈了这一 bug,并描述了孩子们敲击键盘的场景:

他们同时按下了物理键盘和屏幕虚拟键盘,而且,尽量多按一些虚拟键盘。

消息一出,马上就有网友表示,自己同样遇到了这种问题,而且用的桌面系统也是 Cinnamon。

随后,Linux Mint 程序员火速赶往现场。

检查后发现,这的确是一个 bug,而且 Cinnamon 4.2 以上的桌面系统,都会受到影响,因为这一版开始支持屏幕虚拟键盘了。

导致这个 bug 的具体行为是:长按 "e" 键,并在虚拟键盘上选中 " ē "

现在,Linux Mint 已经为这个漏洞推出了一个新补丁,不过需要自己手动安装。

人生苦短,不如用 KDE(手动狗头)。

大神:17 年前我就警告过他们

对于如此荒谬而简单的漏洞,自然引起各路程序员对 Linux 桌面的吐槽。

关于这个问题的 GitHub issue 页面都被程序员们玩坏了。

有人说:这个 CVE 应该归功于孩子们…

还有人在回帖中发个表情包:我想程序员们应该会这样复现 bug。

但要论吐槽最狠的,还是著名程序员大神jwz

今天凌晨,这位大神又双叒叕发了一篇文章来吐槽此事,标题是《我已经告诉过你们之 2021 版》

因为早在 17 年前,他就警告过 Cinnamon 和 GNOME 官方:

如果没有在 Linux 上运行 XScreenSaver,那么可以你的屏幕就相当于没有锁定。

之后每隔几年,jwz 都会出来把这段话再说一遍。

jwz 还调侃说:" 翻车 " 一次是偶然,两次是巧合,三次是敌人的破坏,四次是 GNOME 官方。

而这四次安全漏洞,jwz 都有详细的记录:

CVE-2019-3010,从 Oracle Solaris 屏幕保护程序可以获得特殊权限升级;

CVE-2014-1949, MDVSA-2015:162:在 Cinnamon 屏幕保护程序中按菜单键,再按 ESC 键,就可以进入 shell;

按住向下键,解锁 Cinnamon 屏幕保护程序;

按住回车键,解锁 GNOME 屏幕保护程序。

修 bug 引发的新漏洞

导致 Linux Mint 漏洞是由于 3 月前修复另一个 bug 引起的。

这个漏洞存在于 Linux 显示服务 xorg-x11-server 中,其最大威胁是对数据机密性和完整性以及系统可用性的威胁。

更让人哭笑不得的是,Ubuntu 20.04 在向后移植 xorg 的时候,由于使用了没有该 bug 的 1.20.9 版,反而逃过一劫。

当 Ubuntu 的开发人员意识到没有打上 CVE-2020-25712 补丁后,他们又中了新的漏洞。

结果就是,xorg 更新修复以后,任何人都可以让屏幕锁定程序崩溃,然后进入桌面。

无独有偶,这不禁让人想起 GNOME 两个月前的另一个 " 低级 " 漏洞。

这个锅该让 GNOME 来背吗?jwz 认为,归根结底是因为现在的 Linux 图形化界面根基X11存在着不可修复的严重问题:

1、锁定和身份验证是操作系统级别的问题。

尽管 X11 是 Linux 计算机操作系统的核心,但它的设计没有安全性可言,锁定程序必须以普通的、非特权的用户级应用程序一样运行。

2、X11 体系结构的这一错误永远无法修复。

X11 太旧、太僵化,并且有太多利益相关者无法对它进行任何有意义的更改。这就是为什么人们不断尝试替换 X11 的原因并失败了,因为它根深蒂固。

虽然现在有 Wayland 作为 X11 的替代品,但仍有网友替换为 Wayland 后,Ubuntu 桌面依然存在某些缺陷。

比如唤醒电脑后,会在原来的桌面停留 10~20 秒才能进入锁屏状态,这个过程中桌面的隐私会一览无余。

鉴于 Linux 桌面的安全性问题漏洞百出,为了防止未被发现漏洞遭利用,有用户建议先安装XSecureLock,多上一把锁。

我热切期待着听到他们如何解决这个问题。

jwz 在自己的博客里如是说。

参考链接:https://github.com/linuxmint/cinnamon-screensaver/issues/354https://www.zdnet.com/article/linux-mint-fixes-screensaver-bypass-discovered-by-two-kids/https://web.archive.org/web/20210116101222/https://www.jwz.org/blog/2021/01/i-told-you-so-2021-edition/

以上内容由"量子位"上传发布 查看原文
头条新闻

头条新闻

时事热点 一手掌握

订阅

觉得文章不错,微信扫描分享好友

扫码分享

ZAKER | 出品

查看更多内容