暗藏 11 年的 Linux 漏洞曝光,可用于伪造 SUDO 命令

2024-03-31 22:27:09 超级管理员 808


微信截图_20240331223041.png

近日,有研究人员发现,Linux 操作系统中的 util-linux 软件包 wall 命令中存在一个漏洞,该漏洞名为 WallEscape,被追踪为 CVE-2024-28085,黑客能够利用该漏洞窃取密码或更改剪贴板。

利用WallEscape 漏洞攻击的方式

据调查,该漏洞已存在 11 年之久,也就是说该软件包 2.40 版本前的每个版本都存在该漏洞。研究人员表示,WallEscape 可能会影响 "wall "命令,该命令在 Linux 系统中通常用于向登录到同一系统(如服务器)的所有用户的终端发送消息弹窗。

由于在处理通过命令行参数输入时,转义序列会被过滤,因此无权限用户可利用该漏洞,使用转义控制字符在其他用户的终端机上创建假的 SUDO 提示,并诱使他们输入管理员密码。

安全研究员 Ferrante 解释称,如果 "mesg "实用程序处于活动状态,且 wall 命令具有 setgid 权限,那在这样的情况下,该漏洞就有可能被成功利用。

同时,研究人员指出,这两种情况在 Ubuntu 22.04 LTS(Jammy Jellyfish)和 Debian 12.5(Bookworm)上都存在,但在 CentOS 上不存在。

目前,WallEscape 的概念验证利用代码已经发布,同时也公布了攻击者利用该漏洞的技术细节。

除了技术细节外,研究人员还介绍了可能导致不同结果的利用方案。其中一个案例描述了为 Gnome 终端创建虚假 SUDO 提示以诱骗用户输入密码的步骤。

Ferrante 也提到,黑客可以通过为 Gnome 终端创建虚假的 SUDO 提示,诱骗用户输入敏感信息作为命令行参数。但需要一些预防措施,比如使用 wall 命令向目标传递一个脚本,改变他们在终端中的输入(前景色、隐藏输入、睡眠时间),这样虚假的密码提示就会作为合法请求通过。

要找到密码,攻击者就必须检查 /proc/$pid/cmdline 文件中的命令参数,在多个 Linux 发行版上,非特权用户都能看到这些参数。

另一种攻击方式是通过转义序列更改目标用户的剪贴板。研究人员强调,这种方法并不适用于所有终端模拟器,Gnome 就是其中之一。

但由于人们可以通过墙发送转义序列,因此如果用户使用的终端支持这种转义序列,攻击者就可以将受害者的剪贴板更改为任意文本。

研究人员在漏洞报告中提供了设置陷阱和运行攻击的演示代码,并解释了两种利用方案的工作原理。

值得注意的是,利用 WallEscape 依赖于本地访问(物理访问或通过 SSH 进行远程访问),这限制了其严重性。

其中涉及到的安全风险来自在多用户设置(如组织的服务器)中与受害者访问同一系统的无权限用户。

安全人员建议广大用户立即升级到 linux-utils v2.40,以修补漏洞。一般来说,可通过 Linux 发行版软件包管理器上的标准升级通道进行,但可能会有一些延迟。

另外,系统管理员还可通过移除 "wall "命令中的 setgid 权限,或使用 "mesg "命令将其标志设置为 "n",并禁用消息广播功能,这样就能有效缓解 CVE-2024-28085 漏洞带来的影响。