安全公告:CVE-2026-8168 SVG解析器与渲染器拒绝服务漏洞影响Qt

💡 原文英文,约400词,阅读约需2分钟。
📝

内容提要

Qt SVG模块(QtSvg)存在拒绝服务漏洞CVE-2026-8168,影响Qt 4.1.0至6.8.8及6.9.0至6.11.1。应用加载元素嵌套过深的SVG文件时,解析与渲染过程递归遍历文档树且无深度限制,导致调用栈耗尽、程序崩溃,CVSS 4.0评分7.1(高危)。建议仅加载可信来源的SVG并校验内容,或升级至Qt 6.8.9、6.11.2、6.12.0及以上版本并应用相应补丁。

🔎

延伸解读

漏洞根源:递归遍历缺乏深度限制

公告指出,Qt SVG模块在解析和渲染SVG时,会递归遍历文档树,涉及解析绘制服务器、检测循环、渲染以及销毁内部树等环节,但全程未设置递归深度限制。这意味着,只要SVG文件中的元素嵌套足够深,就会耗尽进程调用栈,导致应用程序崩溃。这种设计缺陷使得攻击者无需复杂利用手段,仅通过构造恶意SVG文件即可触发拒绝服务。

影响范围广泛,旧版本风险未知

该漏洞影响Qt 4.1.0至6.8.8以及6.9.0至6.11.1版本,覆盖了多个长期支持分支。公告还提到,4.1.0之前的版本受影响状态未知,这意味着更早的版本可能同样存在风险,但缺乏官方确认。对于仍在使用旧版Qt的开发者,需要评估是否在受影响范围内,并关注后续更新。

缓解与修复:从输入校验到版本升级

在无法立即升级的情况下,公告建议仅加载可信来源的SVG内容,并在加载前对SVG进行校验和清理,或限制用户可加载的SVG文件。根本解决方案是应用对应分支的所有补丁,或升级至Qt 6.8.9、6.11.2、6.12.0及以上版本。补丁涵盖了渲染、绘制服务器解析、析构函数递归调用、循环检测等多个环节的栈溢出修复,并增加了针对深层嵌套SVG的测试。

❓

Q&A

CVE-2026-8168 影响哪些 Qt 版本?

影响 Qt 4.1.0 至 6.8.8 以及 Qt 6.9.0 至 6.11.1 版本。4.1.0 之前的版本受影响状态未知。

这个 SVG 漏洞是怎么导致程序崩溃的?

当 Qt 应用加载元素嵌套过深的 SVG 文件时,Qt SVG 模块在解析和渲染过程中会递归遍历文档树(包括解析 paint server、检测循环、渲染和销毁内部树),但没有递归深度限制,导致调用栈耗尽,程序崩溃。

CVE-2026-8168 的严重程度评分是多少?

CVSS 4.0 评分为 7.1,属于高危(HIGH)级别。

如何修复或缓解 CVE-2026-8168 漏洞?

修复方法:应用对应分支的所有补丁,或升级到 Qt 6.8.9、6.11.2、6.12.0 或更高版本。缓解措施:仅加载来自可信来源的 SVG 内容,加载前验证和清理 SVG 内容,或限制用户可加载的 SVG 文件。

Qt 6.8 分支的补丁在哪里下载?

Qt 6.8 分支的补丁可通过以下链接下载:https://download.qt.io/archive/qt/6.8/CVE-2026-8168-qtsvg-6.8.zip,或查看对应的代码审查链接。

这个漏洞的 CVSS 向量字符串是什么?

CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:P/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N

🏷️

标签

➡️

继续阅读