CVE-2026-34978OpenPrinting CUPS 是 Linux 和类 Unix 操作系统的开源打印系统。在 2.4.16 及之前版本中,RSS 通知程序在 notify-recipient-uri 参数中存在路径遍历漏洞(例如 rss:///../job.cache)。远程 IPP 客户端可利用此漏洞将 RSS XML 字节写入 CacheDir/rss 目录之外的任何 lp 可写位置。由于 CacheDir 默认是组可写的(通常为 root:lp,模式 0770),通知程序(以 lp 身份运行)可以通过临时文件和 rename() 替换由 root 管理的状态文件。概念验证代码显示攻击者可以用 RSS XML 覆盖 CacheDir/job.cache,导致重启 cupsd 后调度程序无法解析作业缓存,致使先前排队的作业丢失。目前尚无公开补丁可供修复。
该漏洞源于 OpenPrinting CUPS 的 RSS 通知程序未能正确过滤 notify-recipient-uri 参数,允许使用 ../ 进行目录穿越。攻击者可以通过网络向目标 CUPS 服务器发送特制的 IPP 请求。由于 CUPS 的默认配置中,CacheDir 目录通常设置为 root:lp 组且权限为 0770,运行在 lp 用户权限下的 RSS 通知程序拥有该目录的写入权限。利用此漏洞,攻击者可以指定一个路径遍历载荷(如 rss:///../job.cache),迫使程序将 RSS XML 数据写入预定义的缓存目录之外。利用机制涉及创建临时文件并使用 rename() 原子操作覆盖关键系统文件。当 job.cache 等关键文件被无效数据覆盖后,一旦 cupsd 服务重启,调度程序将因无法解析损坏的缓存文件而失败,导致打印服务异常及作业数据丢失。