|
|
||
|
|
||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
CUPS(Common UNIX Printing System,通用Unix 打印系统)是Unix/Linux系统中用于管理打印的重要工具,主要用于管理打印任务、打印请求和打印队列。但并非所有系统都默认启用 CUPS,激活后它允许计算机充当打印服务器,管理打印作业和队列并通过 Internet打印协议 (IPP) 支持网络打印。
近日,启明星辰集团VSRC监测到CUPS 打印系统的多个组件中存在多个安全漏洞,构成远程代码执行链。当启用cups-browsed守护程序(默认监听UDP 端口631,通常不启用)时,未经身份验证的远程攻击者可构造恶意请求利用这些漏洞在目标系统上执行任意代码,目前部分漏洞细节及PoC已公开,详情如下:
CVE-2024-47176:CUPS 中cups-browsed包含网络打印功能,如自动发现打印服务和共享打印机等。cups-browsed <= 2.0.1绑定在 UDP INADDR_ANY:631 上,并信任来自任何来源的任何数据包,可能导致`Get-Printer-Attributes` IPP 请求发送到攻击者控制的 URL。
CVE-2024-47076:Libcupsfilters <= 2.1b1中,cfGetPrinterAttributes5 函数无法验证或清理IPP服务器返回的IPP属性,可能导致攻击者控制的数据与CUPS系统的其余部分进行交互。
CVE-2024-47175:libppd<= 2.1b1中,函数 ppdCreatePPDFromIPP2 在将 IPP 属性写入临时PPD文件时不会验证或清理IPP属性,可能导致在生成的PPD中注入攻击者控制的数据。
CVE-2024-47177:cups-filters<=2.0.1 foomatic rip允许通过FoomaticRIPCommandLine PPD参数执行任意命令。
攻击者可以通过以下流程实现远程代码执行:
- 攻击者向目标系统的UDP端口631发送包含恶意URL的数据包。
- CUPS系统的cups-browsed组件会连接到该URL,并请求恶意IPP服务器返回伪造的PPD文件。
- 该PPD文件包含恶意的FoomaticRIPCommandLine指令,这些指令被写入系统的临时PPD文件中。
- 当用户发送打印作业时,CUPS系统会调用foomatic-rip过滤器,并执行PPD文件中的恶意命令。
- 攻击者的命令在目标系统上被执行,完成远程代码执行。
二、漏洞复现
三、影响范围
受影响CUPS组件
CVE-2024-47176: cups-browsed ≤ 2.0.1
CVE-2024-47076: libcupsfilters ≤ 2.1b1
CVE-2024-47175: libppd ≤ 2.1b1
CVE-2024-47177: cups-filters ≤ 2.0.1
受影响系统
由于CUPS 和cups-browsed 适用于大多数 UNIX 系统,这些漏洞可能影响Arch Linux、Debian、Red Hat / Fedora、openSUSE、Slackware、Ubuntu等基于 Unix 且带有CUPS 服务的系统。
四、安全措施
4.1 升级版本
目前上述漏洞暂无相应补丁,受影响用户可应用相关缓解措施并在安全更新发布后升级到最新版本。
下载链接:
https://github.com/OpenPrinting/cups-browsed/releases
lGNU/Linux 发行版
参考链接:
https://pkgs.org/download/cups-browsed
lBSD
参考链接:
https://docs.freebsd.org/en/articles/cups/
lGoogle Chromium/ChromeOS
参考链接:
https://source.chromium.org/chromiumos/chromiumos/codesearch/+/main:src/third_party/chromiumos-overlay/net-print/;bpv=1
lOracle Solaris
参考链接:
https://docs.oracle.com/cd/E23824_01/html/821-1451/cups-intro.html
4.2 临时措施
若非必要,建议禁用或删除cups-browsed服务。
在更新可用时及时更新系统上的 CUPS 包;如果系统无法及时更新,并且需要依赖cups-browsed服务,可通过阻止所有发送到UDP端口631的流量,或限制该端口仅可信地址访问。
检测
可使用以下命令查看 cups-browsed 服务的状态,如果服务已启用/正在运行,则系统可能易受攻击:
systemctl status cups-browsed 或者service cups-browsed status
4.3 通用建议
定期更新系统补丁,减少系统漏洞,提升服务器的安全性。
加强系统和网络的访问控制,修改防火墙策略,关闭非必要的应用端口或服务,减少将危险服务(如SSH、RDP等)暴露到公网,减少攻击面。
使用企业级安全产品,提升企业的网络安全性能。
加强系统用户和权限管理,启用多因素认证机制和最小权限原则,用户和软件权限应保持在最低限度。
启用强密码策略并设置为定期修改。
4.4 参考链接
https://www.evilsocket.net/2024/09/26/Attacking-UNIX-systems-via-CUPS-Part-I/
https://www.redhat.com/en/blog/red-hat-response-openprinting-cups-vulnerabilities
https://github.com/OpenPrinting/cups-browsed/security/advisories/GHSA-rj88-6mr5-rcw8
https://nvd.nist.gov/vuln/detail/CVE-2024-47176
原文始发于微信公众号(启明星辰安全简讯):【漏洞复现】UNIX CUPS远程代码执行漏洞
- 左青龙
- 微信扫一扫
- 右白虎
- 微信扫一扫
评论