用户反馈
Windows 11 + QQ(QQEX.exe v9.9.26.44725)环境下,切换到微软拼音时 QQ 偶发崩溃。
崩溃信息:
异常代码:0xc0000005 (STATUS_ACCESS_VIOLATION)
故障模块:D:\program\QQ\versions\9.9.29-47354\resources\app\MSVCP140.dll
偏移:0x13080
初步判断
OpenLess 的 TSF 输入法组件 OpenLessIme.dll 会在输入法切换过程中被系统加载到当前前台应用进程中。
此前 OpenLessIme.dll 使用 MSBuild 默认运行库配置:
- Release:
MultiThreadedDLL
- Debug:
MultiThreadedDebugDLL
在部分应用环境中,宿主进程内已有的运行库版本可能与 OpenLessIme 构建时依赖的运行库存在兼容性差异。
当输入法组件在该进程内执行涉及 C++ 标准库的逻辑时,可能触发运行时异常,最终导致宿主应用崩溃。
该问题目前观察到与 QQ 9.9.x 环境相关,表现为切换输入法时 QQ 偶发崩溃。
修复
PR #287 已调整 OpenLessIme.vcxproj 的运行库配置,将 OpenLessIme 改为静态 CRT:
- Release:
MultiThreaded
- Debug:
MultiThreadedDebug
修复后,OpenLessIme.dll 不再依赖宿主进程内的动态 C++ 运行库,从而降低不同宿主应用环境下的运行库兼容性风险。
复现需要的环境
本机暂不具备完整复现环境,请协助验证。
需要环境:
- Windows 11
- 已安装 QQ 9.9.x
- 已安装 OpenLess,且包含
OpenLessIme TSF 输入法组件
- 微软拼音作为已启用输入法之一
最小复现 SOP:
- 打开 QQ 主聊天界面,焦点放在输入框
- 使用 Win+Space 切换到 OpenLess 输入法
- 使用 Win+Space 切换到微软拼音
- 多次往返切换,观察 QQ 是否在 5–30 秒内出现崩溃
验证方式
请分别验证以下场景:
预期结果:
- 修复前:部分 QQ 9.9.x 环境下可能出现崩溃
- 修复后:切换输入法不再导致 QQ 崩溃
关联
用户反馈
Windows 11 + QQ(QQEX.exe v9.9.26.44725)环境下,切换到微软拼音时 QQ 偶发崩溃。
崩溃信息:
异常代码:0xc0000005 (STATUS_ACCESS_VIOLATION)
故障模块:D:\program\QQ\versions\9.9.29-47354\resources\app\MSVCP140.dll
偏移:0x13080
初步判断
OpenLess 的 TSF 输入法组件
OpenLessIme.dll会在输入法切换过程中被系统加载到当前前台应用进程中。此前
OpenLessIme.dll使用 MSBuild 默认运行库配置:MultiThreadedDLLMultiThreadedDebugDLL在部分应用环境中,宿主进程内已有的运行库版本可能与 OpenLessIme 构建时依赖的运行库存在兼容性差异。
当输入法组件在该进程内执行涉及 C++ 标准库的逻辑时,可能触发运行时异常,最终导致宿主应用崩溃。
该问题目前观察到与 QQ 9.9.x 环境相关,表现为切换输入法时 QQ 偶发崩溃。
修复
PR #287 已调整
OpenLessIme.vcxproj的运行库配置,将 OpenLessIme 改为静态 CRT:MultiThreadedMultiThreadedDebug修复后,
OpenLessIme.dll不再依赖宿主进程内的动态 C++ 运行库,从而降低不同宿主应用环境下的运行库兼容性风险。复现需要的环境
本机暂不具备完整复现环境,请协助验证。
需要环境:
OpenLessImeTSF 输入法组件最小复现 SOP:
验证方式
请分别验证以下场景:
预期结果:
关联
OpenLessIme.vcxproj改为静态 CRTOpenLess-QQ-MSVCP140-vulnerability-report.docx