发布概览:四个“老牌”分支同步修复
Python核心开发者Thomas Wouters在10月9日宣布,3.12.12、3.11.14、3.10.19、3.9.24四个维护分支同步释出安全更新,被戏称为“Old-timer Release Party”。这些版本主要针对依赖库与标准库的安全问题,关注焦点包括XML解析、压缩档案处理以及HTML解析器的规范兼容性。
核心安全修复一览
- libexpat升级到2.7.3(gh-139312):修复CVE-2025-59375,防止XML实体在特定情况下触发堆缓冲区溢出。
xml.parsers.expat
同时调整垃圾回收逻辑(gh-139400),确保子解析器引用释放时不会提前回收父解析器。 - 压缩档案安全性增强:
tarfile
模块新增偏移量校验(gh-130577),阻止构造出的负偏移覆盖任意文件。zipfile
在处理Zip64结尾记录时新增一致性检查(gh-139700),并支持“zip64 extensible data”,避免被恶意前缀破坏文件结构。
- HTML解析符合HTML5标准(gh-135661):
html.parser.HTMLParser
不再接受形如</ script>
的标签写法,从源头降低跨站脚本攻击面,同时提升与现代浏览器解析逻辑的一致性。
此外,开发团队还修复了若干与文档、构建系统相关的问题,并更新了第三方依赖的哈希校验。
对企业运维的影响:老版本仍需持续治理
- 长期运行的LTS镜像:许多企业仍在生产环境中使用3.9或3.10版本。此次更新表明Python官方仍会为“老牌”版本提供关键修复,但发版频率较低,需要企业自建镜像时及时跟进。
- 供应链风险:XML解析器和压缩库经常出现在CI/CD、数据交换或容器镜像构建脚本中。一旦不更新,攻击者可利用恶意构造文件实现持久化或权限提升。
- 兼容性关注:HTML解析改动可能影响依赖容错解析的老项目(例如将非规范HTML作为输入的爬虫)。上线之前需在测试环境确认行为差异。
升级建议与自动化实践
- 统一版本矩阵:梳理内部服务使用的Python版本,构建覆盖3.9、3.10、3.11、3.12的自动化测试矩阵,确保兼容性测试与发布流程同步。
- 编排升级流水线:在CI/CD中引入“安全基线”检查,自动拉取最新维护版本的Docker镜像或编译包;对自建基础镜像的团队,建议将libexpat等依赖升级纳入每日构建。
- 检测潜在风险资产:利用软件物料清单(SBOM)或包管理工具扫描,识别使用
tarfile
、zipfile
、xml.parsers.expat
的关键应用,优先执行回归测试。 - 强化安全演练:结合最新补丁,模拟恶意XML、ZIP/TAR样本在旧版本中的攻击路径,提高安全团队对“文件输入型漏洞”的响应速度。
Python社区在保证版本稳定性的同时,持续修补长尾风险。对企业而言,“老版本稳定”不意味着“无需维护”——构建一套覆盖不同生命周期版本的安全升级机制,才是降低供应链风险、保障业务连续性的长久之计。