### 关键信息 - **漏洞名称**:Arbitrary Code Execution in pdfminer.six via Crafted PDF Input - **严重性**:High (8.6 / 10) - **CVE ID**:CVE-2025-64512 #### **主要问题** - **受影响的版本**: - `= 20251107` - **CVSS v3 基准指标** - **攻击向量**:Local - **攻击复杂度**:Low - **所需权限**:None - **用户交互**:Required - **影响范围**:Changed - **保密性**:High - **完整性**:High - **可用性**:High #### **漏洞描述** - **总结**: - pdfminer.six 在处理恶意 PDF 文件时,会执行来自恶意 pickle 文件的任意代码。 - `CMapDB._load_data()` 方法中存在漏洞,可能被带有 `/malicious` CMap 参照的恶意 PDF 攻击并控制。 #### **漏洞细节** - **攻击步骤**: 1. 创建带有 CMap 参照指向恶意路径的恶意 PDF 文件。 2. 在路径中放置恶意的 pickle 文件。 3. 处理 PDF 文件时,pdfminer 会加载、反序列化恶意 pickle 文件。 4. 导致恶意的 Python 代码被执行。 - **攻击方式**: ```python def _load_data(cls, name: str) -> Any: name = name.replace("\0", "") filename = "%s.pickle.gz" % name return type(str(name), (), pickle.loads(gzfile.read())) ``` - **恶意样本** - Malicious PDF 示例提供了受影响组件的关键描述和脚本。 #### **影响** - **Linux、MacOS 难于利用** - 因为路径特指约束且不支持网络存储协议。 - **Windows 容易利用** - 支持 WebDAV 、SMB等协议,允许远程 payload 编码。 #### **验证** - POC 脚本及 Test 说明可用于后续验证漏洞是否完全修复。 #### **修复建议** - 充分验证 pickle 反序列化过程中的数据源。 - 尽量使用指定支持的安全库进行反序列化等操作。