Overwolf 1-Click 远程代码执行 - CVE-2021-33501
字数 1616 2025-08-05 08:17:46
Overwolf 1-Click 远程代码执行漏洞分析(CVE-2021-33501)
漏洞概述
漏洞类型: 反射型XSS结合CEF沙箱逃逸导致的远程代码执行(RCE)
CVE编号: CVE-2021-33501
CVSS评分: 9.6 (Critical)
影响版本: Overwolf Client 0.169.0.22及更早版本
漏洞发现者: Joel Noguera (SwordBytes)
披露日期: 2021-05-31
技术背景
Overwolf平台简介
Overwolf是一个为游戏开发者创建游戏扩展的平台,功能包括:
- 提供游戏内服务(如浏览器、IM客户端)
- 特定游戏功能(如游戏事件提醒)
- 通过Overwolf App Store分发扩展
相关技术组件
- 自定义URL协议处理程序: Overwolf注册了
overwolfstore://协议 - Chromium Embedded Framework (CEF): Overwolf客户端使用的浏览器引擎
- Overwolf JavaScript API: 提供系统访问功能的API接口
漏洞细节
漏洞链组成
-
反射型XSS漏洞
- 存在于
overwolfstore://URL处理程序中 - 通过
CATEGORY参数未过滤的用户输入注入
- 存在于
-
CEF沙箱逃逸
- 利用Overwolf JavaScript API中的危险函数
- 结合XSS实现系统命令执行
漏洞利用流程
- 攻击者构造恶意URL:
overwolfstore://app/apps/<XSS_PAYLOAD> - 受害者点击URL触发Overwolf客户端处理
- 恶意脚本通过反射型XSS在CEF上下文中执行
- 脚本利用Overwolf API写入并执行批处理文件
- 实现任意命令执行
技术分析
URL处理机制
Overwolf客户端注册了overwolfstore://协议,URL结构为:
overwolfstore://app/<SECTION>/<CATEGORY>/<EXTRAS>
关键解析代码(位于window.js):
_this.decodeUrlSchemeParams = function(info) {
const decodedUrl = decodeURIComponent(info.parameter);
const url = new URL(decodedUrl);
const urlParts = url.pathname.split('/');
const params = { origin: info.origin };
if (urlParts[2] !== 'app') { return null; }
if (urlParts[3]) { params.section = urlParts[3]; }
if (urlParts[4]) { params.category = urlParts[4]; }
if (urlParts[5]) { params.extra = { id: urlParts[5] }; }
return params;
}
XSS注入点
当SECTION为"apps"时,CATEGORY值会被反射到错误消息中:
- 后端返回
Content-Type: text/html - 响应直接嵌入DOM,导致XSS
示例Payload:
overwolfstore://app/apps//4
CEF沙箱逃逸技术
利用两个Overwolf API函数实现RCE:
-
overwolf.io.writeFileContents
- 功能: 写入文件到系统
- 参数: 路径、内容、回调等
- 需要
FileSystem权限(默认已分配)
-
overwolf.utils.openUrlInDefaultBrowser
- 功能: 使用默认程序打开URL/文件
- 特性: 可执行本地程序(如
calc.exe)
完整利用链
- 通过XSS执行恶意JavaScript
- 使用
writeFileContents创建批处理文件 - 使用
openUrlInDefaultBrowser执行批处理文件
最终PoC:
overwolfstore://app/apps//CCCCCC
编码说明:
%252f= 双重编码的/%2526= 双重编码的&- 用于绕过解析限制
修复建议
- 对URL参数进行严格过滤和编码
- 限制Overwolf API的敏感功能
- 加强CEF沙箱隔离
- 实施内容安全策略(CSP)
时间线
- 2021-05-04: 漏洞研究开始
- 2021-05-06: 开发PoC
- 2021-05-10: 首次报告给Overwolf
- 2021-05-18: 漏洞确认
- 2021-05-21: CVE分配
- 2021-05-27: 补丁发布
- 2021-05-31: 公开披露
总结
CVE-2021-33501展示了如何通过结合反射型XSS和应用程序特定的API滥用实现远程代码执行。此漏洞强调了以下安全原则的重要性:
- 对所有用户输入进行严格过滤
- 谨慎设计具有系统访问权限的API
- 确保客户端应用程序沙箱的有效性
- 实施纵深防御策略