安全公告:CVE-2026-78253 QXmlStreamReader::readElementText() 中的拒绝服务(栈耗尽)漏洞影响 Qt

💡 原文英文,约200词,阅读约需1分钟。
📝

内容提要

Qt Core 的 QXmlStreamReader::readElementText() 存在栈耗尽拒绝服务漏洞(CVE-2026-78253),影响 Qt 5.0 至 6.8.8 及 6.9.0 至 6.11.1。解析深层嵌套 XML 可导致栈溢出崩溃,CVSS 评分为 2.3。建议限制嵌套层级,并升级至 Qt 6.8.9、6.11.2 或更高版本。

🔎

延伸解读

漏洞影响范围与版本覆盖

该漏洞影响 Qt 5.0 至 6.8.8 以及 6.9.0 至 6.11.1 的所有版本,时间跨度超过十年,意味着大量仍在使用旧版 Qt 的项目可能面临风险。开发者在评估自身项目时,需确认所用 Qt 版本是否落在受影响区间内,并注意即使输入规模不大,深层嵌套的 XML 也可能触发栈耗尽。

攻击向量与触发条件

攻击者可通过不可信来源(如 QML 中的 XMLHttpRequest 或 QNetworkAccessManager 获取的数据)向应用传递深层嵌套的 XML 文档。当 QXmlStreamReader::readElementText() 递归解析时,调用栈可能被耗尽,导致应用崩溃。CVSS 4.0 评分为 2.3(低危),但可用性影响为高,因此对依赖 XML 解析的服务仍需重视。

缓解措施与修复方案

在解析前统计并限制 XML 文档的嵌套层级,可有效缓解栈耗尽风险。官方已发布补丁,建议升级至 Qt 6.8.9、6.11.2 或更高版本。对于无法立即升级的项目,可参考针对 Qt 6.8、6.10、6.11 等分支的补丁链接进行手动修复,或实施输入验证以降低攻击面。

Q&A

CVE-2026-78253 是什么漏洞?

CVE-2026-78253 是 Qt Core 中 QXmlStreamReader::readElementText() 函数的一个拒绝服务(栈耗尽)漏洞。当解析深层嵌套的 XML 文档时,递归解析会耗尽调用栈,导致应用程序崩溃。

哪些 Qt 版本受到 CVE-2026-78253 的影响?

受影响的版本包括 Qt 5.0 至 Qt 6.8.8,以及 Qt 6.9.0 至 Qt 6.11.1。

CVE-2026-78253 的严重程度如何?

该漏洞的 CVSS 4.0 评分为 2.3,属于低严重性(Low)。

如何缓解 CVE-2026-78253 漏洞?

在解析 XML 文档之前,统计并限制其嵌套层级,避免过深的嵌套导致栈耗尽。

CVE-2026-78253 的修复方案是什么?

应用官方补丁,或升级到 Qt 6.8.9、Qt 6.11.2 或更高版本。

攻击者如何利用 CVE-2026-78253 漏洞?

攻击者可以通过提供深层嵌套的 XML 文档(例如通过 QML 中的 XMLHttpRequest 或使用 QNetworkAccessManager 获取的数据)来触发漏洞,导致应用程序崩溃。

🏷️

标签

➡️

继续阅读