聚焦源代码安全,网罗国内外最新资讯!
编译:代码卫士
这些漏洞的编号是CVE-2024-47076 (libcupsfilters)、CVE-2024-47175 (libppd)、CVE-2024-47176 (cups-browsed) 和 CVE-2024-47177 (cups-filters),由 Simone Margaritelli 发现,它们不影响默认配置中的系统。
CUPS(全称为:常用UNIX打印系统)是Linux系统上使用最为广泛的打印系统,同时受运行类似于 Unix 操作系统的设备支持,如FreeBSD、NetBSD和OpenBSD及其衍生操作系统。
CUPS 的其中一个组件是cups-browsed 守护进程,它负责搜索本地网络中的所广告的网络或者共享的打印机,使其可在机器上进行打印,类似于Windows 和 Mac 如何搜索网络中的远程网络打印机。
Margearitelli 发现,如果启用了多数系统上并不存在的cups-browsed 守护进程,那么它就会在 UDP 端口631上监听。同时,它将允许网络上任何设备的远程连接来创建新的打印机。他发现自己能够创建一个恶意的 PostScript Printer Description (PPD) 打印机,可被手动广告到在 UDP 端口631 上运行的被暴露的 cups-browsed 服务。这就导致远程机器自动安装该恶意打印机并使其进行打印。如果被暴露服务器上的用户打印到新的打印机上,则PPD 中的恶意命令将会在计算机上本地执行。通过foomatic-rip 过滤器添加打印时执行的命令,该过滤器在设备上执行命令,以便正确提供打印任务。
虽然这是一个远程代码执行链,但值得注意的是,攻击者必须克服某些障碍才能利用这些漏洞并真正实现远程代码执行后果。
首先,目标系统必须启用默认并非启用的 cups-browsed 守护进程,将 UDP 端口暴露在网络中。接着,攻击者必须诱骗用户在本地网络上从突然出现在机器上的恶意打印机服务器进行打印。
Sonatype 公司的领域首席执行官 Ilkka Turunen 表示,“该漏洞链依赖于在本地网络中欺骗通过网络发现而自动添加的打印机,不过网络发现的功能通常不会是默认开启状态。之后,通过未验证的变量利用 CUPS 系统中的其它漏洞以执行代码,但只有触发打印任务时才可行。好消息是,虽然它是一个RCE漏洞但已存在多种缓解措施,包括攻击者需要通过通常在网络ingress中被禁用的UDP才能连接到计算机上,而且该服务通常在默认情况下不会开启。看似该漏洞产生的实际影响较低。”
为此,Red Hat 将该漏洞评级为“重要”而非“严重”。BleepingComputer 测试表示,虽然多数 Linux 服务器并未启用该服务,但其中一台 Ubuntu 虚拟机是默认启用的。其他人也在推特上表示 cups-browsed 在Linux 设备上是默认开启的。
虽然目前补丁仍在开发过程中,但 Red Hat 分享了一些缓解措施,要求管理员阻止 cups-browsed 服务进行运行,并通过如下命令阻止其在重启后启动:
sudo systemctl stop cups-browsed
sudo systemctl disable cups-browsed
Red Hat 用户可利用如下命令来查看 cup-browsed 是否在系统中运行:
sudo systemctl status cups-browsed
如结果显示为 “Active: inactive (dead)”,则利用链被阻止,系统并不易受攻击。如果结果显示“运行”或“启用”,且配置文件 /etc/cups/cups-browsed.conf 的 “BrowseRemoteProtocols” 指令中包含值 “cups”,则表示该系统易受攻击。
原文始发于微信公众号(代码卫士):CUPS 缺陷可被用于在 Linux 系统上执行远程代码
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论