RHSB-2024-002 - OpenPrinting cups-filters
已更新
此信息是否有帮助?
执行摘要
红帽已了解到,在 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