Skip to content
KitploitKITPLOIT
工具漏洞利用博客
Log in
提交
工具漏洞利用博客
提交

黑客、渗透测试和网络安全工具,武装您的安全武器库!

Kitploit 是一个黑客、网络安全和渗透测试工具的目录。发现最新的项目更新,查找漏洞、分析系统、自动化测试并加强你的安全。

··订阅源·联系·隐私·© 2026 Kitploit

工具目录

分类

查看所有分类
Loading categories
CVE-2026-34990-poc — CVE-2026-34990 — CUPS <= 2.4.16 本地权限提升 | Kitploit
工具/GitHubGitHub/bara-almustafa/cve-2026-34990-poc
防御工具权限提升漏洞分析漏洞利用安全虚拟化渗透测试学习与教育
GitHubbara-almustafa/cve-2026-34990-poc

CVE-2026-34990-poc

CVE-2026-34990 — CUPS <= 2.4.16 本地权限提升

查看仓库
2天前尚未审核

最受欢迎

查看全部 →

发现我们社区最常用的工具。

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享

CVE-2026-34990 — CUPS <= 2.4.16 本地权限提升

本地非特权用户 → root,通过泄露的 CUPS Local 授权令牌和绕过策略的 file:/// 打印队列实现。

PoC 作者 0xcybersoldier

status platform language type CVE


目录

  • 概述
  • 漏洞详情
  • 受影响版本
  • 攻击链
  • 环境要求
  • 安装
  • 使用方法
  • 运行示例
  • 内部工作原理
  • 故障排除
  • 检测
  • 缓解措施
  • 参考资料
  • 免责声明
  • 作者

概述

CVE-2026-34990 是 OpenPrinting CUPS 中的一个本地权限提升漏洞,影响 2.4.16 及更早版本。

能够访问 CUPS 守护进程(cupsd)的本地非特权用户,可能诱使其对回环接口上攻击者控制的 IPP 服务进行身份验证。

由此获得的 Authorization: Local <token> 凭据随后可被重用于 CUPS 管理接口。

该攻击链最终可用于创建 file:/// 打印队列,并诱使 cupsd 以 root 权限写入攻击者控制的文件。

典型演示使用 sudoers 附加配置文件来获取 root shell。

本仓库包含一个实现该攻击链的单文件 Python 3 PoC,其中包括更安全的 --check 模式,用于演示存在漏洞的文件写入行为,而不会直接创建持久化的权限提升配置。


漏洞详情

字段值
CVE IDCVE-2026-34990
组件OpenPrinting CUPS (cupsd)
受影响版本<= 2.4.16
漏洞类别CWE-306 / CWE-284
影响本地权限提升
攻击向量本地
所需权限低
用户交互无
发现者Asim Viladi Oglu Manizada
安全公告GHSA-c54j-2vqw-wpwp

受影响版本

该 PoC 针对:

OpenPrinting CUPS <= 2.4.16

检查本地运行的 CUPS 版本:

curl -sI http://127.0.0.1:631 | grep -i '^Server:'

示例:

Server: CUPS/2.4.16 IPP/2.1

注意: 在生产环境研究中依赖受影响版本范围之前,请先核实当前上游安全公告,因为厂商补丁和版本状态可能会发生变化。


攻击链

 [1] 本地用户发出 CUPS-Create-Local-Printer
         |
         | device-uri = ipp://127.0.0.1:9189/ipp/print
         v
 [2] cupsd 连接到回环接口上攻击者控制的
     IPP 服务
         |
         v
 [3] 伪造的 IPP 服务响应:
     401 Unauthorized
     WWW-Authenticate: Local trc="y"
         |
         v
 [4] CUPS/libcups 使用以下内容重试请求:
     Authorization: Local <token>
         |
         v
 [5] 令牌被捕获
         |
         v
 [6] 令牌被重用于 CUPS 管理接口
         |
         v
 [7] 创建临时 file:// 打印机,并
     通过打印机管理工作流进行转换
         |
         v
 [8] Print-Job 导致 cupsd 将提供的
     文档写入 file:// 目标
         |
         v
 [9] 演示载荷可修改特权
     配置,例如 sudoers
         |
         v
       ROOT

环境要求

  • Python 3.8+
  • 仅使用 Python 标准库
  • 以非特权用户身份拥有本地 shell 访问权限
  • 可访问 127.0.0.1:631 上的 CUPS 服务
  • 权限提升演示需要 sudo 可用
  • 运行存在漏洞的 CUPS 版本的 Linux 系统

无需外部 Python 包。


安装

克隆仓库:

git clone https://github.com/bara-almustafa/CVE-2026-34990-poc.git
cd CVE-2026-34990-poc

使 PoC 可执行:

chmod +x cve-2026-34990.py

无需额外依赖。


使用方法

安全检查模式

从非持久化验证模式开始:

./cve-2026-34990.py --check

检查模式尝试使用临时证明文件演示存在漏洞的 root 所属文件写入原语,并在测试后清理。


Root Shell 演示

默认模式演示完整的权限提升链:

./cve-2026-34990.py

以 Root 身份执行命令

可通过以下方式提供命令:

./cve-2026-34990.py -c 'id'

示例:

./cve-2026-34990.py -c 'id; whoami'

选项

标志默认值描述
--cups-port631本地 CUPS TCP 端口
--listen-port9189令牌捕获监听器使用的回环端口
--check关闭安全验证模式
-c, --command—成功利用后执行命令
--proof-dir/var/tmp临时证明文件的父目录
--attempts8文件写入尝试次数
--iterations80每次尝试的 IPP 请求轮数

运行示例

$ ./cve-2026-34990.py --check

 ██████╗ ██╗  ██╗ ██████╗██╗   ██╗██████╗ ███████╗██████╗ ███████╗ ██████╗ ██╗     ██████╗ ██╗███████╗██████╗
██╔═████╗╚██╗██╔╝██╔════╝╚██╗ ██╔╝██╔══██╗██╔════╝██╔══██╗██╔════╝██╔═══██╗██║     ██╔══██╗██║██╔════╝██╔══██╗
██║██╔██║ ╚███╔╝ ██║      ╚████╔╝ ██████╔╝███████╗██████╔╝█████╗  ██║   ██║██║     ██║  ██║██║█████╗  ██████╔╝
████╔╝██║ ██╔██╗ ██║       ╚██╔╝  ██╔══██╗╚════██║██╔══██╗██╔══╝  ██║   ██║██║     ██║  ██║██║██╔══╝  ██╔══██╗
╚██████╔╝██╔╝ ██╗╚██████╗   ██║   ██████╔╝███████║██║  ██║███████╗╚██████╔╝███████╗██████╔╝██║███████╗██║  ██║
 ╚═════╝ ╚═╝  ╚═╝ ╚═════╝   ╚═╝   ╚═════╝ ╚══════╝╚═╝  ╚═╝╚══════╝ ╚═════╝ ╚══════╝╚═════╝ ╚═╝╚══════╝╚═╝  ╚═╝

  CVE-2026-34990 :: CUPS <= 2.4.16 本地权限提升
  PoC 作者 0xcybersoldier

[*] 触发 CUPS 令牌泄露...
[+] 已捕获 CUPS Local 授权令牌
[*] 文件写入竞争:尝试 1/8
[+] 存在漏洞:CUPS 写入了 root 所属的证明文件

内部工作原理

1. 令牌捕获

该 PoC 创建一个临时 CUPS 打印机,其 device-uri 指向回环接口上攻击者控制的 IPP 监听器。

示例:

ipp://127.0.0.1:9189/ipp/print

本地监听器响应一个身份验证质询:

401 Unauthorized
WWW-Authenticate: Local trc="y"

这导致 CUPS 客户端/服务器交互使用本地身份验证机制重试。

该 PoC 捕获由此产生的:

Authorization: Local <token>

凭据。


2. 管理访问

捕获的令牌被重用于对 CUPS 管理接口的请求中。

概念上:

Authorization: Local <TOKEN>

这提供了后续打印机管理操作所需的授权上下文。


3. 打印机创建

随后,攻击滥用打印机管理工作流来创建一个引用 file:// 目标的队列。

相关目标的形式为:

file:///path/to/target

该 PoC 使用必要的打印机管理操作使队列上线并提交打印作业。


4. Root 级文件写入

打印作业以原始文档形式提交。

由于 cupsd 以 root 权限运行,由此产生的文件操作可能以 root 权限执行。

--check 模式使用此原语创建临时证明文件,并验证其所有者为 UID 0。


5. 权限提升

完整演示可使用特权配置文件,例如 sudoers 附加配置文件。

概念上:

user ALL=(ALL) NOPASSWD: ALL

如果该文件成功写入并具有适当的属主和权限,受影响的用户即可调用:

sudo -n -s

并获得 root shell。


故障排除

症状可能原因建议修复
No Local token receivedCUPS 已修补或监听器不可达验证 CUPS 版本和监听器
CUPS is not reachableCUPS 已停止或使用其他端口使用 --cups-port <port>
无入站连接本地打印机创建受限检查 CUPS 操作策略
NOT CONFIRMED文件写入尝试未成功增加 --attempts / --iterations
Sudoers 载荷被拒绝用户名或环境不同使用 --check
监听器绑定错误端口已被占用使用其他 --listen-port

调试

监控回环流量:

sudo tcpdump -i lo -n port 9189

运行最小验证:

./cve-2026-34990.py \
    --check \
    --attempts 1 \
    --iterations 1

检查 CUPS 服务:

systemctl status cups

检查监听套接字:

ss -lntp | grep ':631'

检测

防御者可监控与此攻击链相关的多个指标。

网络指标

查找:

cupsd → 127.0.0.1:<high-port>

特别是连接到意外的本地端口。

示例:

sudo tcpdump -i lo -n 'tcp and port 9189'

CUPS 日志

监控以下内容的异常组合:

CUPS-Create-Local-Printer
AddModifyPrinter
Print-Job

特别关注包含以下内容的打印机定义:

file:///

文件系统指标

监控敏感位置,例如:

/etc/sudoers.d/
/etc/cron.d/
/etc/systemd/system/
/root/

查找由 cupsd 创建或与之相关的意外文件。

文件完整性监控解决方案有助于检测这些更改。


打印机配置

调查设备 URI 以以下内容开头的意外打印机:

file:///

身份验证指标

监控以下内容的异常重用:

Authorization: Local

凭据在 CUPS 管理请求中的重用。


缓解措施

在部署适当的厂商修复之前:

限制 file:// 打印机支持

检查 CUPS 配置,并在不需要时禁用文件设备支持。

例如:

FileDevice No

在适当的 CUPS 配置中。


限制打印机创建

检查 CUPS:

OperationPolicy

并在可行的情况下限制对以下内容的访问:

CUPS-Create-Local-Printer

限制 CUPS 管理

将 CUPS 管理功能的访问限制为受信任的用户和进程。

不要不必要地暴露 CUPS 管理。


降低服务权限

在部署架构支持的情况下,使用以下方式隔离 CUPS:

  • systemd 沙箱
  • 容器
  • 强制访问控制
  • 受限命名空间
  • 文件系统保护

监控特权文件

监控以下内容的更改:

/etc/sudoers
/etc/sudoers.d/

使用文件完整性监控。


打补丁

在可用时应用适当的上游/厂商安全更新。

在基于历史版本范围部署缓解措施之前,请始终核实当前受支持的 CUPS 版本和安全公告。


参考资料

下载工具