QT漏洞的详细介绍:CVE-2019-1636与CVE-2019-6739
字数 1079 2025-08-29 08:32:09
Qt框架漏洞分析:CVE-2019-1636与CVE-2019-6739
漏洞概述
这两个漏洞影响Qt5框架构建的GUI应用程序,涉及命令行参数的不安全使用,可能导致任意代码执行。攻击者可以通过特定方式利用应用程序加载的插件机制来执行恶意DLL。
技术背景
Qt5框架为GUI应用程序提供了一组受支持的命令行选项,这些选项可以传递给可执行二进制文件。其中两个关键参数存在安全隐患:
-qwindowtitle- 修改窗口标题-platformpluginpath- 指定Qt5插件的目录路径(可包含UNC共享目录)
漏洞原理
Qt5应用程序会自动加载指定目录中的插件(Windows上的DLL文件)。当应用程序配置了自定义URI方案处理程序时,攻击者可以构造恶意URI触发这些命令行参数,导致加载并执行攻击者控制的DLL。
CVE-2019-1636:Cisco Webex Teams漏洞
攻击链
- 安装后注册"ciscospark"协议URI处理程序
- 调用
CiscoCollabHost.exe处理相关URI - 应用程序基于Qt5并支持
platformpluginpath参数 - 图像处理功能需要加载多个插件DLL(如qgif.dll, qjpeg.dll等)
利用方法
CiscoCollabHost.exe -platformpluginpath C:/Users/research/Desktop/poc
这将加载C:/Users/research/Desktop/poc/imageformats/目录中的所有DLL文件。
恶意DLL要求
- 必须包含
.qtmetadPE部分(可从有效插件如qgif.dll复制) - 需要实现
qt_plugin_instance函数 - 可使用以下代码创建元数据部分:
#pragma const_seg(".qtmetad")
CVE-2019-6739:Malwarebytes Anti-Malware漏洞
差异点
- 使用"malwarebytes"协议标识符
- 默认加载的是平台插件
qwindows.dll(位于\platforms\目录)
利用方法
Malwarebytes程序 -platformpluginpath 攻击者控制的路径
漏洞修复
- Cisco通过SA20190123修补了CVE-2019-1636
- Malwarebytes在3.6.1.2711-1.0.508之后的版本修复了CVE-2019-6739
防御建议
- 开发人员应审查Qt框架的所有加载选项和功能
- 限制应用程序接受的外部输入参数
- 对插件加载实施严格的路径验证
- 考虑使用代码签名验证插件完整性
总结
这两个漏洞展示了框架内置功能可能被滥用的典型案例。虽然利用需要特定条件(自定义URI处理程序),但在满足条件的环境中可能造成严重后果。开发人员应充分了解所使用框架的安全特性,避免暴露危险功能。