Sploitus

Exploit for CVE-2025-4517-poc

kitploit · 2026-09-03

Exploit Code

MARKDOWN55 lines
## 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