CVE-2026-0992CVE-2026-0992是libxml2库中的一个资源消耗型拒绝服务漏洞。该漏洞源于libxml2在处理XML目录文件时,对<nextCatalog>元素的解析缺乏循环检测机制。当XML目录中包含重复指向同一下游目录的<nextCatalog>元素时,解析器会冗余地遍历目录链,导致无限递归或大量重复的目录解析操作。攻击者可以通过诱使应用程序加载精心构造的恶意XML目录文件,触发libxml2的目录解析器反复处理相同的目录链,造成CPU资源过度消耗,最终导致应用程序响应缓慢或崩溃。此漏洞的CVSS评分为2.9,属于低危级别,攻击向量为本地攻击,无需认证和用户交互即可触发。虽然攻击复杂度较高(AC:H),但仍可能被恶意网页、文档或配置文件利用,影响使用libxml2进行XML处理的各种应用程序的可用性。
libxml2库提供XML目录(XML Catalog)功能,用于解析和加载外部实体、DTD等资源。目录文件通过<nextCatalog>元素定义目录链,允许一个目录引用下一个目录。漏洞存在于catalog.c的目录解析逻辑中:当解析器遇到<nextCatalog>元素时,会递归加载被引用的下游目录,但缺乏对循环引用的检测机制。攻击者可构造如下目录结构:catalog1.xml包含指向catalog2.xml的<nextCatalog>,而catalog2.xml又指向catalog1.xml;或者创建多个目录都指向同一个下游目录。当libxml2解析此类目录时,会反复遍历同一目录链,导致:1) 栈空间快速消耗(无限递归风险);2) CPU时间片被大量占用在重复的目录解析操作上;3) 内存中累积大量未释放的目录解析上下文。由于目录解析通常在XML文档处理早期进行,攻击者可将此恶意目录配置嵌入应用程序的XML处理流程中,等待解析任意XML文档时触发漏洞。