Linux 系统中的 CUPS 安全漏洞可导致远程命令执行

近日,一组影响 Linux 系统中通用 Unix 打印系统(CUPS)的安全漏洞被披露,引发了广泛关注。这些漏洞潜在地允许未经身份验证的远程攻击者在某些条件下执行恶意命令,可能导致严重的远程命令执行(RCE)问题。本文将深入分析这些漏洞的细节、影响以及防范建议。

CUPS 系统的背景

CUPS 是一种基于标准的开源打印系统,广泛应用于 Linux 及其他类 Unix 操作系统,如 ArchLinux、Debian、Fedora、Red Hat Enterprise Linux (RHEL)、ChromeOS、FreeBSD、NetBSD、OpenBSD、openSUSE 和 SUSE Linux。作为 Unix/Linux 系统中打印服务的核心,CUPS 的安全性至关重要。一旦遭到攻击,恶意代码可能在受感染的系统上以打印服务相关用户的权限执行,从而对系统安全构成威胁。

新披露的漏洞详情

CVE-2024-47176 – UDP 端口上的数据包信任问题

cups-browsed 组件存在的漏洞允许在 UDP INADDR_ANY:631 端口上接受来自任何来源的数据包,并通过 Get-Printer-Attributes IPP 请求对恶意 URL 进行操作。这意味着攻击者可以通过伪造的打印机 URL 替换现有的 IPP URL 或者添加新的打印机,从而潜在地执行恶意命令。

CVE-2024-47076 – IPP 属性的验证缺失

libcupsfilters 中的 cfGetPrinterAttributes5 函数未能验证从 IPP 服务器返回的属性,导致攻击者能够通过伪造的 IPP 属性向 CUPS 系统提供恶意数据,进而影响系统的安全性。

CVE-2024-47175 – PPD 文件注入

libppd 在将 IPP 属性写入临时 PPD 文件时未进行充分验证,攻击者可以通过注入恶意 IPP 属性来修改生成的 PPD 文件,进一步操纵系统行为。

CVE-2024-47177 – foomatic-rip 任意命令执行

cups-filters 中的 foomatic-rip 允许攻击者通过 PPD 参数执行任意命令,进一步增加了攻击者在系统上的控制力。

漏洞的潜在影响

这些漏洞的最大风险在于它们可以被串联利用,形成漏洞链,从而允许攻击者在暴露于网络的 Linux 系统上创建恶意打印设备,并在发送打印作业时触发远程代码执行。受影响的系统不仅可能遭受敏感数据的泄露,还可能导致生产环境中的关键系统被破坏。

然而,安全研究表明,这些漏洞的实际威胁范围有限。Ontinue 网络安全公司指出,问题的根源在于 cups-browsed 对新打印机公告处理不当,以及 CUPS 系统对恶意打印资源的验证不力。此外,Rapid7 强调,只有当系统开放 UDP 端口 631 并运行易受攻击的服务时,攻击才有可能成功。

值得注意的是,RHEL 在其公告中提到,尽管其所有版本都受这些漏洞影响,但默认配置下的系统并不容易遭到攻击,因此将漏洞的严重程度标记为“重要”。

漏洞利用的防范建议

鉴于这些漏洞的潜在危害,系统管理员应采取以下防范措施:

  1. 禁用 cups-browsed 服务:在不需要该服务的情况下,建议立即禁用和删除 cups-browsed 服务。
  2. 限制 UDP 端口 631 的流量:可以通过防火墙阻止或限制对 UDP 端口 631 的外部访问,防止恶意攻击者通过该端口入侵系统。
  3. 及时安装补丁:这些漏洞的补丁预计将在未来几天内发布,管理员应密切关注相关公告,并尽快应用补丁以修复漏洞。
  4. 加强网络防护:确保仅可信的设备和用户能够访问 CUPS 服务所在的网络,并启用入侵检测和防御系统,实时监控潜在的恶意活动。

结论

虽然这些 CUPS 漏洞尚未达到像 Log4Shell 或 Heartbleed 那样的大规模影响,但它们仍对运行 CUPS 的 Linux 系统构成了一定的安全威胁。鉴于现代网络环境的复杂性,以及攻击者不断寻找新漏洞的趋势,组织应采取积极的防护措施,确保系统免受潜在的攻击。

随着补丁的发布,漏洞的威胁会逐步降低,但在此之前,管理员需要保持警惕,及时采取有效措施以确保系统安全。

Leave a Comment

Your email address will not be published. Required fields are marked *