Anonymous Intelligence Signal
lxml 6.1.0 紧急修复 XXE 外部实体注入漏洞,影响 iterparse() 与 ETCompatXMLParser
Python 生态中广泛使用的 XML/HTML 处理库 lxml 在最新 6.1.0 版本中,紧急修复了一个关键的安全漏洞。该漏洞存在于 `iterparse()` 函数和 `ETCompatXMLParser` 解析器中,可能导致外部实体注入攻击。攻击者通过构造恶意的 XML 文件,利用此漏洞可能读取服务器上的敏感文件,甚至发起内部网络探测。对于依赖 lxml 处理用户可控 XML 输入的应用,此漏洞构成了直接的安全威胁。
此次修复的核心是针对 `iterparse()` 和 `ETCompatXMLParser` 中 `resolve_entities` 选项的默认设置问题。在之前的版本中,该选项被错误地设置为 `True`,这意味着解析器会默认解析 XML 文档中定义的外部实体。这正是 XXE 攻击得以成功的关键条件。开发团队在 6.1.0 版本中修正了此行为,关闭了默认的外部实体解析,从而从根本上堵住了漏洞。同时,新版本还增加了对 HTML ARIA 无障碍属性的支持,并允许配置 `iterparse()` 的读取块大小。
鉴于 lxml 在 Web 开发、数据抓取和文档处理领域的普及度,此次安全更新影响范围极广。所有使用 `iterparse()` 或 `ETCompatXMLParser` 处理不可信 XML 数据的项目,都必须立即升级至 6.1.0 或更高版本。对于无法立即升级的系统,开发者应手动确保在调用相关函数时显式设置 `resolve_entities=False`。此次漏洞编号为 LP#2146291,凸显了在依赖链管理中,即使是最基础、最成熟的库,其安全配置的默认值也可能成为被忽视的攻击面。