RHSB-2024-002 - OpenPrinting cups-filters

Public Date: September 26, 2024, 16:14
已更新 September 27, 2024, 11:11 - English(英语) French Japanese Korean

此信息是否有帮助?

Feedback cancelled

Resolved 状态
Important Impact

Insights vulnerability analysis

View exposed systems

执行摘要

红帽已了解到,在 OpenPrinting CUPS 中存在一组安全漏洞,所有 Red Hat Enterprise Linux (RHEL) 版本都会受到影响。这些问题的严重性等级被定为 Important (重要)。在 RHEL 中,相关服务的默认配置存在安全漏洞。但是,该服务在安装时被禁用。受影响的组件在安装时没有启用存在安全漏洞的服务。 

CUPS 是一个开源打印系统,它提供了用于管理、发现和共享打印机的工具。如果攻击者能够利用这些漏洞,则可能会导致以非特权的 "lp" 用户身份执行远程代码。

到目前为止,有 4 个与这类安全漏洞相关的 CVE(CVE-2024-47076, CVE-2024-47175, CVE-2024-47176, 和 CVE-2024-47177),目前还没有响应的补丁程序,但随着与上游社区和研究人员的协调进展,情况会有所变化。

受影响的产品

受 CVE-2024-47076、CVE-2024-47175、CVE-2024-47176 和 CVE-2024-47177 影响的红帽产品:

Red Hat Enterprise Linux 9

受影响 - 所有被维护的版本都将会提供相关修复

Red Hat Enterprise Linux 8

受影响 - 所有被维护的版本都将会提供相关修复

Red Hat Enterprise Linux 7

受影响 - 所有被维护的版本都将会提供相关修复

Red Hat Enterprise Linux  6

受影响 - 不会提供相关修复,不在支持范围内

所有受影响产品的更新

当前没有提供。

技术详情和背景信息

要成功利用这些安全漏洞进行攻击,相关环境需要满足一定的条件。攻击者需要可以公告一个恶意的互联网打印协议 (IPP) 服务,该服务可以被受害者访问。它可以在一个公共互联网上,或者也可以在一个内部信任的网络中。要在内部信任的网络中进行公告,需要成功侵入到网络中,如位于网络中的另外一个服务器中,或位于网络中的一个恶意的系统中,如一个笔记本电脑。

要成功进行攻击,受害者需要运行 cups-browsed 服务,该服务会扫描可用的打印机。  这样,攻击者就可以从恶意 IPP 服务器中自动添加一个临时打印机定义。此时,作为打印机定义的一部分,恶意 IPP 服务器可以将任意代码发送回受害者,当受害者触发这个打印机时,会以非特权 ‘lp’用户身份执行相关的代码。只有在受害者尝试使用这个恶意设备进行打印时,攻击者发送的代码才会被执行。

注意:虽然在这种情况下允许远程代码执行,但其效果会受 'lp' 用户的权限限制。  'lp' 用户无法以特权用户身份执行代码,或访问被适当保护的用户数据。

CVE-2024-47176 cups-browsed

CVE-2024-47076 cups-filter libcupsfilters

CVE-2024-47175 libppd cups cups-filter

CVE-2024-47177 cups-filters foomatic

请参阅相关的 CVE 页以获得相应的更新信息

检测

要确定 cups-browsed 是否正在运行:

$ sudo systemctl status cups-browsed 

如果这个命令的输出表明,没有安装 cups-browsed 服务,或者它不是不活跃的,cups-browsed 服务没有运行,则代表系统不会被欺骗连接到恶意的 IPP 服务。

如果 systemctl 显示服务为 "running" 或 "enabled" 状态,请检查 /etc/cups/cups-browsed.conf 并搜索 "BrowseRemoteProtocols" 指令。  如果配置文件中的这个指令带有值 "cups",则代表系统会受到这个安全漏洞的影响。  例如:

BrowseRemoteProtocols dnssd cups

缓解方案

在补丁可用前,最简单的缓解方案是禁用 cups-browsed。  因为这仅会影响到打印机客户端,所以这是最简单的解决方案,它不会影响用户在已知的打印设备中进行打印的能力。  这可以通过几种方法实现。

完全禁用 cups-browsed :

$ sudo systemctl stop cups-browsed 

$ sudo systemctl disable cups-browsed 

如果您希望运行 cups-browsed 以使客户端系统可以自动发现可用的打印机,可以在 /etc/cups/cups-browsed.conf 配置文件中进行以下更改来防止安全漏洞:

BrowseRemoteProtocols dnssd cups

BrowseRemoteProtocols none

重启 cups-browsed :

$ sudo systemctl restart cups-browsed 

致谢

红帽借此感谢 Simone “EvilSocket” Margaritelli 发现并报告了这些漏洞,以及 Till Kamppeter (OpenPrinting) 提供的额外协调支持。

 

 

Comments