针对 pardus-software 包(Pardus 软件中心)版本 1.0.4 中的两个本地权限提升问题的概念验证和利用就绪代码,两者均在 1.0.5 中修复。
| CVE | 类别 | 摘要 | CVSS 3.1 (CERT-TR) |
|---|---|---|---|
| CVE-2026-14459 | CWE-88 — 参数注入 | 一个 pardus-software 组的成员(无 sudo,无密码)将 APT 选项(-o Dir::Bin::dpkg=…)注入特权帮助程序,并以 root 身份运行任意代码。 | 8.8 HIGH |
| CVE-2026-14460 | CWE-862 — Missing Authorization | autoaptupdateaction PolicyKit 操作带 allow_any=yes,允许 任何 本地用户以 root 身份运行更新帮助程序,无需身份验证(本地拒绝服务)。 | 8.8 HIGH |
受影响: pardus-software 1.0.4 · 修复: pardus-software 1.0.5
供应商: Pardus / TÜBİTAK BİLGEM · 通过供应商和 USOM (CERT-TR) 协调披露。
此代码发布用于 防御性研究、教育以及验证已修补、公开披露的漏洞。这两个问题已在 pardus-software 1.0.5 中修复。
仅 在您拥有或明确授权测试的隔离、一次性虚拟机上运行。请勿针对您无法控制的系统运行。您有责任遵守所有适用法律。作者不对滥用行为承担任何责任。
pardus-software-lpe/
├── README.md
├── poc/
│ └── poc.sh # original benign PoC (proof-only; both CVEs)
└── exploit/
├── exploit-14459.sh # CVE-2026-14459 → interactive root shell
└── exploit-14460.sh # CVE-2026-14460 → unauth root apt-update (DoS)
单个 poc.sh 通过子命令涵盖 两个 发现:
poc/ 版本是 良性 的:它仅将 id 输出记录到 /tmp/pardus_lpe_proof,并放置一个 setuid-root 的 /tmp/rootbash 作为证明。exploit/ 版本是武器化的、“给我一个 root shell” 的等价物,用于在授权目标上进行演示。
poc.sh SHA256:1d3f4c19affdb377ac5eee4c695619e9f6a4590350c3936678eb1db2cf601255
良性 PoC 包含一个帮助程序,用于在一次性 Pardus 25 VM 上创建一个处于 pardus-software 组(无 sudo)的无特权 victim 账户:
sudo ./poc/poc.sh setup-victim
sudo cp poc/poc.sh /home/victim/ && sudo chown victim /home/victim/poc.sh
# CVE-2026-14459 — 选项注入(主要)
sudo su - victim -c 'cd ~ && ./poc.sh B'
# 如果 'hello' 已安装/不可用:./poc.sh B sl
# CVE-2026-14459 — 本地未签名 .deb(次要)
sudo su - victim -c 'cd ~ && ./poc.sh A'
# CVE-2026-14460 — 未经身份验证的 root apt update(任何用户,无需特殊组)
sudo useradd -m -s /bin/bash nobody2
sudo cp poc/poc.sh /home/nobody2/ && sudo chown nobody2 /home/nobody2/poc.sh
sudo su - nobody2 -c 'cd ~ && ./poc.sh autoupdate'
预期: 无密码提示;输出显示 uid=0(root),/tmp/pardus_lpe_proof 归 root 所有,/tmp/rootbash 为 -rwsr-xr-x root root(setuid root)。对于 B,APT 还会打印其自身的迹象表明注入的脚本在 dpkg 的位置上运行:
Warning: APT had planned for dpkg to do more than it reported back (0 vs 5).
Affected packages: hello:amd64
以目标非特权用户身份运行这些(对于 14459,为 pardus-software 的成员)。
# CVE-2026-14459 → 交互式 root shell
./exploit/exploit-14459.sh
# 以 root 身份运行单个命令而不是 shell:
./exploit/exploit-14459.sh -c "id > /root/pwned"
# 如果 'hello' 已安装/不可用,请选择一个未安装的包:
PKG=sl ./exploit/exploit-14459.sh
# CVE-2026-14460 → 未认证的 root apt-update(本地拒绝服务)
./exploit/exploit-14460.sh
# 通过重复调用演示拒绝服务面:
./exploit/exploit-14460.sh -n 20
在已修补的主机(>= 1.0.5)上,两个脚本都会干净地失败并说明情况。
CVE-2026-14459. Actions.py 的 install() 方法根据空格分割其 packages 参数,并将这些令牌直接附加到 apt 参数向量上——没有名称验证,没有 -- 选项终止符。任何看起来像 APT 选项的令牌都会被接受,包括 -o Dir::Bin::dpkg=<path>,这将包管理器后端替换为攻击者脚本,随后以 root 身份运行。相同的模式也存在于 remove/upgrade/reinstall/downgrade 中。
CVE-2026-14460. autoaptupdateaction PolicyKit 操作被声明为 allow_any=yes,允许任何主体无需身份验证即可获得授权。任何本地用户都可以以 root 身份调用 AutoAptUpdate.py——一个本地拒绝服务面。
完整的技术文章(英文+土耳其文):([https://medium.com/@dasokkk/missing-authorization-in-pardus-software-center-any-local-user-can-run-apt-update-as-root-de4756d4c1a1] (https://medium.com/@dasokkk/local-privilege-escalation-in-pardus-software-center-via-apt-option-injection-cve-2026-14459-569ad65a2250))
已在 pardus-software 1.0.5 中修复:
a6ff277 — 为 apt 操作添加包名验证(parse_packages() 正则表达式 + -- 分隔符)(CVE-2026-14459)。70210af — 将 autoaptupdateaction 的 allow_any: yes 改为 auth_admin(CVE-2026-14460)。如果您运行 Pardus,请升级到 pardus-software 1.0.5 或更高版本。
a6ff277 · 70210af仅用于授权测试
由 Kerem Kaan Daşmaz 进行研究和协调披露。
| 子命令 | 证明 | 备注 |
|---|
poc.sh B | CVE-2026-14459 | APT 选项注入(-o Dir::Bin::dpkg)— 主要发现 |
poc.sh A | CVE-2026-14459 | 通过相同信任路径的本地未签名 .deb(次要演示) |
poc.sh autoupdate | CVE-2026-14460 | 未经身份验证的 root apt update |