Ubuntu 被曝严重漏洞,攻击者可轻松获取 root 权限

番茄系统家园 · 2022-05-30 03:41:47

近日,GitHub 安全研究员 Kevin Backhouse 发现了Ubuntu20.04(一个长期支持版本)中的漏洞,该漏洞可以使任何桌面用户无需系统密码,即可添加新的 sudo 用户,并获得 root 访问权限。

Backhouse指出,利用该漏洞攻击系统的方法非常简单,只需要一些简单的命令就能为自己创建一个管理员账户。“现代操作系统中的漏洞如此容易被利用是不寻常的。“Backhouse还录制了视频详细展示了自己如何利用这个漏洞对系统进行攻击。

据悉,该漏洞利用了 Ubuntu 系统中的两个错误。一个是管理计算机上用户账户的服务 accountsservice,另一个是GNOME显示管理器(gdm3) 的 BUG。

accountsservice 漏洞

accountservice 的守护进程 accounts-daemon是管理机器上用户账户的系统服务,它可以创建一个新的用户账户或更改用户的密码,但它也可以做一些安全敏感度较低的事情,比如更改用户的图标或他们喜欢的语言。守护进程是在后台运行的程序,没有自己的用户界面。然而,系统设置对话框可以通过一个称为D-Bus 的消息系统与账户-守护进程进行通信。

而 Ubuntu 使用了一个修改过的 accountsservice 版本,其中包含了一些额外的代码,而这些代码在freedesktop维护的上游版本中并不存在。Ubuntu 的补丁增加了一个名为 is_in_pam_environment的函数,它在用户的主目录中寻找一个名为.pam_environment 的文件,并读取它。

accounts-daemon 漏洞的工作原理是将 .pam_environment 作为一个指向 /dev/zero的软链接。/dev/zero是一个特殊的文件,实际上并不存在于磁盘上,它是由操作系统提供的,它的行为就像一个无限长的文件,其中的每一个字节都是 0。当is_in_pam_environment 试图读取 .pam_environment时,它会被软链接重定向到/dev/zero,然后陷入无限循环,因为/dev/zero 是无限长的。

这样一来,accounts-daemon 就会丧失其 root 权限,转而采用用户的较低特权,然后将 SIGSEGV发送给账户守护程序并使其崩溃。

GNOME 漏洞

GNOME 显示管理器(gdm3)是 Ubuntu用户界面的一个基本组件。它负责处理诸如在用户登录和退出时启动和停止用户会话等事宜,还负责管理登录屏幕。

gdm3 处理的另一件事是新电脑的初始设置。当你在新电脑上安装Ubuntu时,首先需要做的事情之一就是创建一个用户账户。初始用户账户需要设置一个管理员,这样用户才能继续设置机器,做一些诸如配置wifi和安装应用程序的事情。下面是初始设置界面的截图(取自漏洞视频)。

Ubuntu 被曝严重漏洞,攻击者可轻松获取 root 权限

gnome-initial-setup(初始设置)

截图中看到的对话框是一个单独的应用程序,叫做 gnome-initial-setup。当系统上的用户账户为 0时,它就会被gdm3触发,这也是新电脑初始设置时的情况。而 gdm3 恰好就是通过询问 accounts-daemon来检查当前机器的账户数量。因为在上一个漏洞中导致accounts-daemon 已经崩溃,其用于查询账户数量的 D-Bus 方法调用由于超时而失败。所以现在gdm3 认为用户账户为零,并启动了gnome-initial-setup。

Backbouse 已经在上个月将该漏洞报告提交给了 Ubuntu 和 GNOME 维护人员,目前官方已经进行了修复。使用 Ubuntu +GNOME的用户还请尽快安装修复补丁。(没有使用 GNOME 的用户暂时不受影响)

本文转自OSCHINA。

本文标题:JetBrains 发布 Kotlin 桌面 UI 框架,共享 Android UI 代码

本文地址:https://www.oschina.net/news/120434/jetbrains-jetpack-compose-for-desktop

免责声明: 凡标注转载/编译字样内容并非本站原创,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。如果你觉得本文好,欢迎推荐给朋友阅读;本文链接: https://m.nndssk.com/dngz/332658nf5vSB.html
猜你喜欢
最新应用
热门应用