安全公告:CVE-2026-82292 QDomDocument::setContent() XML解析中的空指针解引用漏洞影响Qt
内容提要
Qt框架XML模块的QDomDocument::setContent()存在空指针解引用漏洞(CVE-2026-82292),影响Qt 4.1.0至6.8.8及6.9.0至6.11.2。当invalidDataPolicy设为ReturnNullNode并解析含XML 1.0非法字符的数据时,节点工厂返回空节点,DOM构建器未检查即解引用,导致应用崩溃(拒绝服务),不影响机密性和完整性,CVSS 4.0评分1.9。建议解析前验证XML、仅处理可信来源或保持默认策略;修复可升级至Qt 6.8.9或6.11.3以上,或应用官方补丁。
延伸解读
触发条件:特定策略与非法字符
该漏洞的触发需要同时满足两个条件:一是 invalidDataPolicy 被设置为 QDomImplementation::ReturnNullNode,二是解析的 XML 数据包含 XML 1.0 标准下的非法字符。此时节点工厂返回空节点,而 DOM 构建器未做空指针检查便直接解引用,导致应用崩溃。若应用保持默认策略,则不会进入该问题路径。
影响范围:拒绝服务而非数据泄露
根据公告,漏洞最坏情况是应用程序崩溃,构成拒绝服务。CVSS 4.0 评分为 1.9,属于低危,且明确不影响机密性和完整性。攻击向量为本地(AV:L),利用前提较多,实际风险取决于应用是否暴露解析不可信 XML 的入口以及是否启用了 ReturnNullNode 策略。
修复与缓解:升级或调整策略
官方建议升级至 Qt 6.8.9 或 6.11.3 及以上版本,或应用对应分支的补丁。若暂时无法升级,可在调用 setContent() 前单独验证 XML 数据、仅解析可信来源,或在不需要 ReturnNullNode 时保持默认 invalidDataPolicy。这些措施能降低触发条件成立的可能性。
Q&A
CVE-2026-82292 影响哪些 Qt 版本?
影响 Qt 4.1.0 至 6.8.8 以及 Qt 6.9.0 至 6.11.2 版本。Qt 4.1.0 之前的状态未知。
这个漏洞是如何触发的?
当 invalidDataPolicy 设置为 QDomImplementation::ReturnNullNode 时,使用 QDomDocument::setContent() 解析包含 XML 1.0 非法字符的数据,节点工厂返回空节点,DOM 构建器未检查即解引用,导致空指针解引用。
CVE-2026-82292 的严重程度如何?
CVSS 4.0 评分为 1.9,属于低危。最坏情况是应用程序崩溃(拒绝服务),不影响机密性和完整性。
如何缓解 CVE-2026-82292 的风险?
在将 XML 数据传递给 QDomDocument::setContent() 之前单独验证 XML 数据;仅解析来自可信来源的 XML;如果不需要 ReturnNullNode 策略,保持 invalidDataPolicy 为默认设置。
修复 CVE-2026-82292 应该升级到哪个版本?
升级到 Qt 6.8.9 或 Qt 6.11.3 或更高版本,或者应用官方提供的补丁。
这个漏洞会影响数据的机密性和完整性吗?
不会。该漏洞仅导致应用程序崩溃(拒绝服务),对机密性和完整性没有影响。