以下为微步情报局对该漏洞的评估结果:
公开程度 | PoC未公开 |
利用条件 | 无权限要求 |
交互要求 | 0-click |
漏洞危害 | 高危、权限绕过、命令执行 |
影响版本 | ≤1.10.2 |
漏洞复现
经微步情报局进行复现,YApi接口管理平台通过注入获取到用户token,结合自动化测试API接口写入待命命令,并利用沙箱逃逸触发命令执行。
☞ 获取用户token:
YApi中某函数存在拼接,导致MongoDB注入可获取所有token,包括用户ID、项目ID等必要参数。
☞ 命令执行
然后通过分析sandbox函数可发现vm模块,利用vm模块构造可逃逸的命令执行数据包达到命令执行效果。
经分析,目前YApi所有版本(包括最新的1.12.0版本)都受此命令执行漏洞影响!最新的1.12.0版本修复方式是默认关闭脚本引擎,并没有根本修复漏洞代码,如果管理员开启配置,依旧存在后台代码执行漏洞。
时间轴
1
2022.07
● 微步“X漏洞奖励计划”获取该漏洞相关情报;
2
2022.07
● 漏洞研究与分析;
3
2022.07
● TDP支持对该漏洞检测;
4
2022.08
● OneSIG、OneEDR支持对该漏洞检测;
5
2022.09
● X企业版支持对该漏洞检测;
6
2022.10
● 报送监管、厂商、漏洞情报订阅客户;
7
2022.11
● 补丁发布。
修复方案
目前官方已出修复补丁,以下为下载链接:
https://github.com/YMFE/yapi/commit/59bade3a8a43e7db077d38a4b0c7c584f30ddf8c