IPBUF安全漏洞报告
English
CVE-2025-14576 CVSS 7.8 高危

CVE-2025-14576 Qt SVG模块QML/JS代码注入漏洞

披露日期: 2026-04-30
来源: a59d8014-47c4-4630-ab43-e1b13cbe58e3

漏洞信息

漏洞编号
CVE-2025-14576
漏洞类型
代码注入
CVSS评分
7.8 高危
攻击向量
本地 (AV:L)
认证要求
无需认证 (PR:N)
用户交互
需要交互 (UI:R)
影响产品
Qt (Qt SVG module / Qt Quick)

相关标签

代码注入QtSVGQMLCVE-2025-14576

漏洞概述

该漏洞源于Qt SVG模块对节点ID的验证不足。攻击者可以通过制作包含恶意QML或JavaScript代码的SVG文件,诱导用户在Qt Quick的VectorImage组件中加载。一旦加载,恶意代码将被注入并执行,可能导致拒绝服务、信息泄露等后果。

技术细节

该漏洞的核心问题在于Qt SVG模块解析SVG文件时,未对元素节点ID进行充分的安全过滤。SVG是一种基于XML的矢量图形格式,允许为元素定义ID。在Qt Quick框架中,VectorImage组件负责渲染SVG。当处理特制的SVG文件时,若ID字段被注入了QML语法或JavaScript脚本,解析器可能会将ID误认为是可执行的QML属性绑定或脚本引用。由于攻击向量为本地(AV:L)且需要用户交互(UI:R),攻击者需将恶意文件发送给受害者。当受害者使用受影响的应用打开该文件时,嵌入的脚本会在应用上下文中运行。虽然QML环境相对沙箱化,但仍可能访问敏感数据或执行破坏性操作,造成高机密性、完整性和可用性影响。

攻击链分析

STEP 1
1. 制作恶意文件
攻击者构造一个包含恶意节点ID的SVG文件,ID中嵌入QML或JavaScript代码。
STEP 2
2. 传递文件
通过网络钓鱼或物理传输等方式,将恶意SVG文件发送给目标用户。
STEP 3
3. 触发漏洞
诱导用户在受影响的应用程序中打开或预览该SVG文件(利用VectorImage组件加载)。
STEP 4
4. 执行代码
应用程序解析SVG时,由于验证不足,执行了注入的QML/JS代码,导致安全风险。

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
<!-- PoC for CVE-2025-14576: Qt SVG Node ID Injection --> <!-- Create a malicious SVG file containing QML/JS injection in the ID attribute --> <svg xmlns="http://www.w3.org/2000/svg" width="100" height="100"> <!-- Example 1: Attempting to inject JavaScript execution --> <!-- Depending on the vulnerability context, the parser might execute the script in the ID --> <rect id="javascript:alert('CVE-2025-14576_PoC')" x="0" y="0" width="50" height="50" fill="red"/> <!-- Example 2: Attempting to inject QML property binding or method --> <circle id="Qt.quit()" cx="75" cy="75" r="25" fill="blue"/> </svg> <!-- Usage: Load this file using a vulnerable Qt Quick VectorImage component -->

影响范围

Qt (Specific versions not listed in provided text, refer to codereview.qt-project.org/c/qt/qtdeclarative/+/697273)

防御指南

临时缓解措施
在官方补丁发布前,应避免打开来源不明的SVG文件。开发者可在应用程序层面添加对SVG内容的过滤机制,特别是针对节点ID的合法性校验,或者临时禁用VectorImage组件对SVG的自动加载功能。

参考链接

快速导航: 前沿安全 最新收录域名列表 最新威胁情报列表 最新网站排名列表 最新工具资源列表 最新CVE漏洞列表