ZCyberNews
English
漏洞高危5 分钟阅读
CVE-2026-31247

Docling JATS XML 后端 XXE 漏洞 CVE-2026-31247 导致 DoS

CVE-2026-31247:Docling 的 JATS XML 后端通过 2.61.0 使用 etree.parse() 时未禁用实体扩展,允许 XML 炸弹攻击消耗过多资源和...

Docling JATS XML 后端 XXE 漏洞 CVE-2026-31247 导致 DoS

执行摘要

Docling,一个开源文档转换库,在其JATS XML后端存在一个高严重性的XML外部实体(XXE)漏洞,跟踪编号为CVE-2026-31247,CVSS得分为7.5。这个漏洞影响所有2.61.0之前的版本,源自于该库使用Python的etree.parse()函数而没有禁用实体解析。攻击者可以提供一个包含嵌套实体扩展的精心制作的XML文件——通常被称为XML炸弹——导致指数级的资源消耗,从而导致拒绝服务。该漏洞于2026年5月11日通过NVD披露,截至本文撰写时,官方补丁尚未发布。

技术分析

Docling中的JATS XML后端处理按照期刊文章标签套件(JATS)标准格式化的XML文件,这是学术和出版工作流程中的一个常见模式。根据CVE-2026-31247的NVD条目,后端调用etree.parse()——Python标准xml.etree.ElementTree库的一部分——而没有明确禁用实体扩展。默认情况下,etree.parse()解析内部和外部实体,包括嵌套实体定义。

XML炸弹,也称为十亿笑攻击,通过定义少量深度嵌套的实体来利用这种行为。例如,一个只有几KB的XML文件在解析时可以扩展到GB级的内存数据,耗尽目标系统上的CPU和内存资源。攻击不需要认证或特殊权限——任何可以向Docling提交JATS XML文档的用户或服务都可以触发这个条件。

Docling被用于自动化从PDF、Word或HTML转换到JATS XML的文档的环境中,如研究存储库、出版流水线和学术档案。在服务器端部署中,Docling处理来自外部贡献者或摄取文档的不受信任的XML文件,这个漏洞尤其令人担忧。单一恶意提交可能会降低或崩溃处理服务,影响所有用户的可用性。

CVE-2026-31247的CVSS向量反映了一个网络可利用的、低复杂度的攻击,不需要特权,也不需要用户交互。范围保持不变,虽然机密性和完整性没有直接受到影响,但可用性完全被破坏(C:N/I:N/A:H)。

缓解措施与建议

截至2026年5月11日,Docling项目尚未发布解决CVE-2026-31247的补丁版本。依赖Docling进行JATS XML转换的防御者应实施以下缓解措施:

  • 在非必需的环境中禁用JATS XML处理,或仅将其使用限制在受信任的XML源。
  • 应用输入验证,通过扫描XML文件中的实体声明,然后再将它们传递给Docling。可以使用xmllint工具和--noent标志禁用来预先验证文档。
  • 使用容器化或seccomp配置文件对Docling进程进行沙箱处理,以限制对主机系统的资源耗尽影响。通过操作系统或容器级别(例如,通过Docker的--memory--cpus标志)设置内存和CPU限制,可以将拒绝服务事件限制在单个容器中。
  • 监控Docling进程中的异常资源消耗。在XML解析期间内存使用或CPU时间的峰值可能表明有尝试利用的行为。
  • 考虑使用默认禁用实体扩展的替代XML解析库,例如Python的defusedxml,并在可行的情况下本地修补Docling源代码。

订阅更新

将最新的网络安全资讯直接发送到您的邮箱。

标签:#docling#cve-2026-31247#xxe#xml-bomb#denial-of-service#jats-xml

相关文章