## 漏洞关键信息 ### 漏洞概述 - **CVE ID**: CVE-2025-64512 - **CVSS v3 Score**: 8.3/10 - **严重性**: High ### 漏洞详情 - **组件**: pdfminer.six CMap 加载器 - **问题**: 使用 Python 的 `pickle` 模块加载和反序列化 `.pickle.gz` 文件时,处理不可信数据不安全。 - **可利用性**: 如果低权限用户能够向 `CMAP_PATH` 中的目录写入数据,他们可以以 root 或特权服务的身份执行代码。 - **影响**: 可以完全以服务用户的身份执行代码,导致从用户到 root 的权限提升、持久性和潜在的横向扩展。 ### 技术细节 - **漏洞类型**: 不安全的反序列化不可信数据 - **攻击前提**: 攻击者可以写入 CMAP 路径中包含的目录。 - **脆弱代码位置**: ```python return type(str(name), (), pickle.loads(gzfile.read())) ``` 该代码位于 `pdfminer/cmapdb.py` 的 `_load_data` 方法中。 ### 证明概念 - 提供了 `createEvilPickle.py`, `evilmmod.py`, `processPDF.py` 作为概念验证代码。 ### 利用流程 1. **攻击者**使用 `createEvilPickle.py` 在共享上传目录中生成并放置恶意 CMap pickle。 2. **root 用户** 运行正常处理 PDF 的脚本,加载该目录中的 CMap 文件。 3. 恶意 pickled CMap 被反序列化,以 root 或特权服务身份运行任意代码。 4. 攻击者获得 root 权限执行代码的证据 (`/root/pwnedByPdfminer` 文件)。