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应用程序提供了一组受支持的命令行选项,这些选项可以传递给可执行二进制文件。其中两个关键参数存在安全隐患:

  1. -qwindowtitle - 修改窗口标题
  2. -platformpluginpath - 指定Qt5插件的目录路径(可包含UNC共享目录)

漏洞原理

Qt5应用程序会自动加载指定目录中的插件(Windows上的DLL文件)。当应用程序配置了自定义URI方案处理程序时,攻击者可以构造恶意URI触发这些命令行参数,导致加载并执行攻击者控制的DLL。

CVE-2019-1636:Cisco Webex Teams漏洞

攻击链

  1. 安装后注册"ciscospark"协议URI处理程序
  2. 调用CiscoCollabHost.exe处理相关URI
  3. 应用程序基于Qt5并支持platformpluginpath参数
  4. 图像处理功能需要加载多个插件DLL(如qgif.dll, qjpeg.dll等)

利用方法

CiscoCollabHost.exe -platformpluginpath C:/Users/research/Desktop/poc

这将加载C:/Users/research/Desktop/poc/imageformats/目录中的所有DLL文件。

恶意DLL要求

  1. 必须包含.qtmetad PE部分(可从有效插件如qgif.dll复制)
  2. 需要实现qt_plugin_instance函数
  3. 可使用以下代码创建元数据部分:
#pragma const_seg(".qtmetad")

CVE-2019-6739:Malwarebytes Anti-Malware漏洞

差异点

  1. 使用"malwarebytes"协议标识符
  2. 默认加载的是平台插件qwindows.dll(位于\platforms\目录)

利用方法

Malwarebytes程序 -platformpluginpath 攻击者控制的路径

漏洞修复

  • Cisco通过SA20190123修补了CVE-2019-1636
  • Malwarebytes在3.6.1.2711-1.0.508之后的版本修复了CVE-2019-6739

防御建议

  1. 开发人员应审查Qt框架的所有加载选项和功能
  2. 限制应用程序接受的外部输入参数
  3. 对插件加载实施严格的路径验证
  4. 考虑使用代码签名验证插件完整性

总结

这两个漏洞展示了框架内置功能可能被滥用的典型案例。虽然利用需要特定条件(自定义URI处理程序),但在满足条件的环境中可能造成严重后果。开发人员应充分了解所使用框架的安全特性,避免暴露危险功能。

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等) 利用方法 这将加载 C:/Users/research/Desktop/poc/imageformats/ 目录中的所有DLL文件。 恶意DLL要求 必须包含 .qtmetad PE部分(可从有效插件如qgif.dll复制) 需要实现 qt_plugin_instance 函数 可使用以下代码创建元数据部分: CVE-2019-6739:Malwarebytes Anti-Malware漏洞 差异点 使用"malwarebytes"协议标识符 默认加载的是平台插件 qwindows.dll (位于 \platforms\ 目录) 利用方法 漏洞修复 Cisco通过SA20190123修补了CVE-2019-1636 Malwarebytes在3.6.1.2711-1.0.508之后的版本修复了CVE-2019-6739 防御建议 开发人员应审查Qt框架的所有加载选项和功能 限制应用程序接受的外部输入参数 对插件加载实施严格的路径验证 考虑使用代码签名验证插件完整性 总结 这两个漏洞展示了框架内置功能可能被滥用的典型案例。虽然利用需要特定条件(自定义URI处理程序),但在满足条件的环境中可能造成严重后果。开发人员应充分了解所使用框架的安全特性,避免暴露危险功能。