这是一篇关于 CUPS 系统安全漏洞的研究文章,主要内容如下:
- 总结:介绍了针对 GNU/Linux 系统的 RCE 相关 CVE 漏洞,包括 cups-browsed、libcupsfilters、libppd 和 cups-filters 等组件的漏洞,阐述了漏洞的影响、攻击路径、受影响系统以及修复建议等。
- 影响:远程未认证攻击者可通过将现有打印机的 IPP 地址替换为恶意地址,在打印作业启动时执行任意命令。
攻击路径:
- WAN / 公共互联网:远程攻击者发送 UDP 数据包到端口 631,无需认证。
- LAN:本地攻击者可伪造 zeroconf / mDNS / DNS-SD 广告,实现相同的 RCE 代码路径。
- 受影响系统:CUPS 及其相关组件在大多数 UNIX 系统中都有包装,如大多数 GNU/Linux 发行版、某些 BSD 系统、Google Chromium / ChromeOS、Oracle Solaris 等。
修复建议:
- 若不需要,禁用并删除
cups-browsed
服务。 - 更新系统上的 CUPS 包。
- 若系统无法更新且依赖该服务,阻止所有到 UDP 端口 631 和可能的所有 DNS-SD 流量。
- 若不需要,禁用并删除
漏洞细节:
cups-browsed
监听 UDP INADDR_ANY:631,默认配置允许任何人连接,存在栈缓冲区溢出和竞态条件等问题。libcupsfilters
的cfGetPrinterAttributes5
未验证或清理 IPP 属性,libppd
的ppdCreatePPDFromIPP2
未验证或清理 IPP 属性写入临时 PPD 文件时的情况,cups-filters
的foomatic-rip
可通过FoomaticRIPCommandLine
PPD 参数执行任意命令。
- 个人考虑:研究仅花费数天,而负责任披露过程却长达 22 天,包括大量争论、人身攻击等,作者认为负责任披露过程存在问题,同时提到 CVSS 评分及 CERT 的 VINCE 存在泄露等情况。
- 后续计划:作者将在第二部分介绍如何使用 bettercap 模块攻击 Apple macOS。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。