通过 CUPS 攻击 UNIX 系统,第一部分

这是一篇关于 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,默认配置允许任何人连接,存在栈缓冲区溢出和竞态条件等问题。
    • libcupsfilterscfGetPrinterAttributes5未验证或清理 IPP 属性,libppdppdCreatePPDFromIPP2未验证或清理 IPP 属性写入临时 PPD 文件时的情况,cups-filtersfoomatic-rip可通过FoomaticRIPCommandLinePPD 参数执行任意命令。
  • 个人考虑:研究仅花费数天,而负责任披露过程却长达 22 天,包括大量争论、人身攻击等,作者认为负责任披露过程存在问题,同时提到 CVSS 评分及 CERT 的 VINCE 存在泄露等情况。
  • 后续计划:作者将在第二部分介绍如何使用 bettercap 模块攻击 Apple macOS。
阅读 14
0 条评论