漏洞总结 漏洞概述 pip 存在 ZIP 解析器混淆攻击漏洞(CVE-2026-3219)。该漏洞源于 pip 在解压归档文件时,对文件类型的判断逻辑存在缺陷,可能导致恶意构造的 zip 文件被错误识别或处理,从而引发安全风险。 影响范围 受影响组件:pip 的 archive files 解压逻辑 影响版本:26.1 及之前版本 攻击场景:用户上传或安装包含恶意构造的 zip 文件时,可能触发解析错误 修复方案 1. 重构解压逻辑: - 不再依赖单一签名检查,改为按顺序检查 content type、filename、magic signature - 优先使用 content type 判断,若匹配则直接解压 - 若 content type 不匹配,则检查 filename 后缀 - 最后才使用 magic signature 判断(仅当其他方法失败时) - 若文件同时符合 zip 和 tar 特征,记录错误日志 2. 增加测试覆盖: - 添加单元测试验证新逻辑 - 确保对 ambiguous 文件类型有正确处理 3. 安全公告: - 该漏洞已由 Google 独立报告并发布安全公告 - 相关讨论见:https://www.cve.org/CVERecord?id=CVE-2026-3219 相关代码变更 PR #13870 中提交的关键代码修改包括: 完整代码变更请参考 GitHub PR: https://github.com/pypa/pip/pull/13870 补充说明 Warehouse (PyPI 后端) 已拒绝 polyglot 文件:https://github.com/pypa/warehouse#19638 此漏洞与 wheel 构建中的 tar.gz 被误识别为 zip 文件的问题相关(#13867)