## https://sploitus.com/exploit?id=KITPLOIT:TOOLS-GITHUB-STEALTHBYTE0-CVE-2025-4517-POC
# CVE-2025-4517 PoC – Python tarfile 路径遍历导致的任意文件写入
**CVE-2025-4517** (CVSS 9.4 – 严重)
Python 的 `tarfile` 模块存在一个漏洞,当使用 `TarFile.extractall()` 或 `TarFile.extract()` 并设置 `filter="data"` 或 `filter="tar"` 时,允许在解压目录之外进行任意文件写入。
**受影响版本** :
* Python 3.12+(当显式使用 `filter="data"` 或 `filter="tar"` 时)
* Python 3.14+(当依赖新的默认 `filter="data"` 时)
**修复版本** :
* Python 3.12.11, 3.13.4, 3.11.13+(补丁于 2025 年中发布)
此 PoC 创建一个恶意的 `.tar` 归档,尝试在易受攻击的系统上解压时**覆盖`/etc/sudoers`**(为用户 `wacky` 添加无密码 sudo 条目)。
**免责声明**
此代码**严格用于教育目的** 、授权的安全研究、CTF 挑战和红队演习。
**未经明确书面许可,请勿在任何系统上使用此代码。**
滥用可能违反您所在司法管辖区的计算机欺诈和滥用法律。
## 工作原理(高级概览)
1. 创建深度嵌套的目录,名称很长,并加上同名的符号链接(导致路径混淆/循环)。
2. 使用 `../` 构建一个长的符号链接链,向上逃逸多层目录。
3. 将一个“逃逸”符号链接指向遍历 → `/etc`。
4. 使用**硬链接** (`LNKTYPE`)将 tar 内的文件别名化为逃逸路径(`/etc/sudoers`)。
5. 将有效载荷内容写入硬链接名称 → 在解压时覆盖目标文件。
## 要求
* Python 3.x(任何现代版本)用于**生成** 漏洞利用
* 目标上的易受攻击的解压器:
* GNU tar ≤ 1.34
* 兼容模式下的 bsdtar/libarchive
* 具有易受攻击筛选器设置的 Python `tarfile`
* 没有路径限制的备份/恢复脚本
## 生成恶意 Tar
root@kitploit:~
# 1. Save the PoC as generate_exploit.py
# 2. Run:
python3 generate_exploit.py