UNIX CUPS远程代码执行漏洞

admin 2024年10月5日00:14:21评论30 views字数 2645阅读8分49秒阅读模式
一、漏洞概述
漏洞名称
     UNIX CUPS远程代码执行漏洞
CVE   ID
CVE-2024-47076、CVE-2024-47175、CVE-2024-47176、 CVE-2024-47177
漏洞类型
RCE
发现时间
2024-09-24
漏洞评分
9.9
漏洞等级
高危
攻击向量
网络
所需权限
利用难度
用户交互
PoC/EXP
已公开
在野利用
未发现

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文件中的恶意命令。
  • 攻击者的命令在目标系统上被执行,完成远程代码执行。

二、漏洞复现

UNIX CUPS远程代码执行漏洞

三、影响范围

受影响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远程代码执行漏洞

免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2024年10月5日00:14:21
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   UNIX CUPS远程代码执行漏洞https://cn-sec.com/archives/3224250.html
                  免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉.

发表评论

匿名网友 填写信息