dasokkk/CVE-2026-14459-14460-pardus-software
GitHub: dasokkk/CVE-2026-14459-14460-pardus-software
针对 Pardus Software Center 1.0.4 的两个本地权限提升漏洞(APT 参数注入与 PolicyKit 授权缺失)的概念验证与武器化利用代码。
Stars: 0 | Forks: 0
# Pardus Software Center — 本地权限提升 (CVE-2026-14459 & CVE-2026-14460)
针对 `pardus-software` 包 (Pardus Software Center) 版本 **1.0.4** 中两个本地权限提升漏洞的概念验证和已武器化漏洞利用代码,两者均已在 **1.0.5** 版本中修复。
| CVE | 类别 | 摘要 | CVSS 3.1 (CERT-TR) |
|-----|-------|---------|--------------------|
| [CVE-2026-14459](https://nvd.nist.gov/vuln/detail/CVE-2026-14459) | CWE-88 — Argument Injection | `pardus-software` 用户组成员(无 sudo,无密码)向特权 helper 中注入 APT 选项 (`-o Dir::Bin::dpkg=…`) 并以 **root** 身份执行任意代码。 | 8.8 HIGH |
| [CVE-2026-14460](https://nvd.nist.gov/vuln/detail/CVE-2026-14460) | CWE-862 — Missing Authorization | `autoaptupdateaction` PolicyKit action 配置为 `allow_any=yes`,允许**任何**本地用户在未经验证的情况下以 root 身份运行更新 helper(造成本地 DoS)。 | 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)
```
### 哪个脚本验证哪个 CVE?
一个单独的 `poc.sh` 通过子命令涵盖了**两项**发现:
| 子命令 | 验证目标 | 说明 |
|------------|--------|-------|
| `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` |
`poc/` 目录下的版本是**无害的**:它仅将 `id` 的输出记录到 `/tmp/pardus_lpe_proof`,并生成一个 setuid-root 的 `/tmp/rootbash` 作为证明。`exploit/` 目录下的版本是武器化版本,即“给我一个 root shell”的等效实现,用于在授权目标上演示。
`poc.sh` SHA256: `1d3f4c19affdb377ac5eee4c695619e9f6a4590350c3936678eb1db2cf601255`
## 环境配置(测试受害者)
无害 PoC 包含一个 helper 脚本,用于在一次性 Pardus 25 虚拟机上创建一个位于 `pardus-software` 组中的非特权 `victim` 账户(无 sudo 权限):
```
sudo ./poc/poc.sh setup-victim
sudo cp poc/poc.sh /home/victim/ && sudo chown victim /home/victim/poc.sh
```
## 运行无害 PoC(仅用于验证)
```
# 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(本地 DoS)
./exploit/exploit-14460.sh
# 通过重复调用来演示 DoS 攻击面:
./exploit/exploit-14460.sh -n 20
```
在已修补的主机(`>= 1.0.5`)上,两个脚本都会正常失败并给出提示。
## 根本原因(简述)
**CVE-2026-14459。** `Actions.py` 的 `install()` 方法按空格拆分其 `packages` 参数,并将标记直接附加到 `apt` 参数向量中——没有名称验证,也没有 `--` 选项终止符。任何看起来像 APT 选项的标记都会被采纳,包括 `-o Dir::Bin::dpkg=`,这会将包管理器后端替换为随后以 root 身份运行的攻击者脚本。`remove/upgrade/reinstall/downgrade` 中也曾存在相同的模式。
**CVE-2026-14460.** `autoaptupdateaction` PolicyKit action 被声明为 `allow_any=yes`,从而在无需身份验证的情况下授权任何主体。任何本地用户都可以以 root 身份调用 `AutoAptUpdate.py` —— 构成了一个本地 DoS 攻击面。
完整的技术分析(英文 + 土耳其文):*([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`](https://github.com/pardus/pardus-software/commit/a6ff27778bd8d2a200692e36dc1cdaa22cc0c51e) — 针对 apt 操作的包名验证(`parse_packages()` 正则表达式 + `--` 分隔符)(CVE-2026-14459)。
- [`70210af`](https://github.com/pardus/pardus-software/commit/70210afff52b1b4ab72daf38af29cb078539216f) — 将 `autoaptupdateaction` 的 `allow_any: yes` 修改为 `auth_admin` (CVE-2026-14460)。
- [1.0.4 → 1.0.5 版本对比](https://github.com/pardus/pardus-software/compare/debian/1.0.4...debian/1.0.5)
**如果您正在使用 Pardus,请升级至 `pardus-software` 1.0.5 或更高版本。**
## 参考文献
- NVD: [CVE-2026-14459](https://nvd.nist.gov/vuln/detail/CVE-2026-14459) · [CVE-2026-14460](https://nvd.nist.gov/vuln/detail/CVE-2026-14460)
- USOM (CERT-TR) 公告: https://siberguvenlik.gov.tr/guvenlik-bildirimleri/detay/tr-26-0497
- 供应商修复: [`a6ff277`](https://github.com/pardus/pardus-software/commit/a6ff27778bd8d2a200692e36dc1cdaa22cc0c51e) · [`70210af`](https://github.com/pardus/pardus-software/commit/70210afff52b1b4ab72daf38af29cb078539216f)
## 仅限授权测试使用
*研究与协调披露由 Kerem Kaan Daşmaz 完成。*
标签:CSV导出, Cutter, PoC, Web报告查看器, 暴力破解, 本地提权, 逆向工具