CVE-2026-31248Docling项目的METS GBS后端在2.61.0及之前的版本中存在XML实体扩展(XXE)漏洞。该组件在处理.tar.gz归档文件时,会提取并验证其中的XML文件。由于代码使用了`etree.fromstring()`方法且未禁用实体解析,攻击者可以构造包含嵌套实体定义(XML Bomb)的恶意XML文件并打包进归档。当Docling解析该文件时,实体的指数级扩展将消耗大量系统资源,最终导致服务拒绝(DoS)。
该漏洞的核心在于XML解析器配置不当。Docling的METS GBS后端在处理用户上传的.tar.gz文件时,使用Python的`etree.fromstring()`函数解析其中的XML内容,但未设置`resolve_entities=False`或禁用DTD加载。这允许攻击者利用XML的实体扩展机制实施“Billion Laughs”攻击。攻击者定义一个递归的实体引用,例如`&lol9;`扩展为10个`&lol8;`,层层递归,使得一个极小的XML文件在解析时扩展成数GB的数据。这种指数级增长迅速耗尽服务器的CPU和内存资源,导致系统挂起或崩溃,从而造成拒绝服务。此漏洞无需认证即可通过网络触发,且不需要用户交互,危害性较高。