昨天提到有研究人员透露多数Linux发行版都存在某个高危安全漏洞,这个漏洞评分高达9.9/10分,借助漏洞攻击者无需身份验证即可远程执行任意代码。今天发现该漏洞的研究人员开始披露漏洞的细节,该漏洞位于CUPS组件中(通用UNIX打印系统),有些情况下这是默认启用的,有些情况下则没有默认启用。
受影响的操作系统包括大多数Linux发行版、部分BSD系统、ChromeOS/ChromiumOS、OracleSolaris,或许还有更多系统受影响。
目前已经分配CVE编号的漏洞列表:
CVE-2024-47176:cups-browsed<=2.0.1,绑定在UDPINADDR_ANY:631上信任来自任何来源的数据包并触发Get-Printer-Attributes对攻击者控制的URL的IPP打印请求。
CVE-2024-47076:libcupsfilters <=2.1b1,cfGetPrinterAttributes5未验证或清理从IPP服务器返回的IPP属性,从而向CUPS系统的其余部分提供攻击者控制的数据。
CVE-2024-47175:libppd<=2.1b1,ppdCreatePPDFromIPP2在将IPP属性写入到临时PPD文件时不会验证或清理,从而导致在生成的PDD中注入攻击者控制的数据。
CVE-2024-47177:cups-filters<=2.0.1,foomatic-rip允许通过PPD参数执行任意命令FoomaticRIPCommandLine
有直接参与CUPS项目的开发者称:
从一般的安全角度来看,如今整个Linux系统只是一个无休止、无可救药的安全漏洞大杂烩,等待着被利用。
如何利用该漏洞:
未经身份验证的攻击者可以远程悄悄利用恶意URL替换现有打印机的IPPURL或安装新的打印机IPPURL,从而导致启动打印作业时在该计算机上执行任意命令。
其中在公网上攻击者只需要远程向设备UDP631端口发送特制数据包即可,无需任何身份验证;如果是在内网,则可以通过欺骗zeroconf/mDNS/DNS-SD实现相同的操作。
理论上说暴露在公网上的Linux系统(以及其他受影响的版本,下同)在默认启用CUPS的情况下,攻击者可以通过自动化程序进行扫描并收集数据,也可以通过自动化程序批量进行攻击。
研究人员在公网上进行扫描时轻松获得数十万台设备的连接,峰值时有200K~300K个并发设备,也就是仅从扫描数据来看公网上受影响的Linux系统可能就超过百万台。
目前的补救措施:
如果你不需要使用打印相关服务请直接在系统上删除cups-browsed
更新系统上的CUPS包
如果系统无法执行更新并且出于某种原因你依赖该服务,则需要阻止所有通过UDP到631端口的流量以及可能的所有DNS-SD流量
研究人员自己的做法是从所有系统中删除了所有的CUPS服务、二进制文件和库,并且也不会再使用UNIX系统进行打印,还删除了zeroconf、avahi、bonjour监听器。
最后这里还是要提下研究人员与开发者之间的漏洞反馈问题:
在昨天的文章中开发者已经提到关于这个/这些漏洞的披露并不顺利,因为负责这些项目的开发者似乎并不认同相关漏洞,在最新披露的文章里研究人员也说明了这些问题。
从9月5日开始研究人员通过OpenPrintingcups存储库提交了安全公告,原本这应该是负责任的披露流程的一部分,但之后披露流程已经崩溃。
负责分类漏洞的工程师似乎对研究人员抱有极高的期望,你必须证明自己值得被倾听(也就是必须详细向他们说明漏洞的各种信息),但他们几乎不关心处理和理解你在说什么。
在22天的沟通中,研究人员称对接的工程师(不止一个人)傲慢、不屑一顾甚至存在人身攻击,他们试图证明这些”漏洞“在其他项目上也存在,而且是用于其他功能而非修复。
直到三周后对接的工程师才意识到研究人员是对的,整个过程让研究人员心力交瘁,估计也已经对目前Linux社区这种流程或机制失望透顶。
以上出自研究人员关于该漏洞的第一部分披露,接下来可能还有第二部分和第三方部分:https://www.evilsocket.net/2024/09/26/Attacking-UNIX-systems-via-CUPS-Part-I/
相关文章:
几乎所有Linux发行版都存在严重的远程代码执行漏洞漏洞评分达到9.9/10分
【查看完整讨论话题】 | 【用户登录】 | 【用户注册】