当前位置:首页--专题报道--网络安全专题--预警通报

YAPI远程代码执行漏洞

2021-07-14

  漏洞名称 YAPI远程代码执行漏洞

  组件名称 : YAPI

  影响范围 : YAPI <= 1.9.2

  漏洞类型 :远程代码执行

  利用条件 :

  1、用户认证:需要用户认证

  2、触发方式:远程

  综合评价 

  <综合评定利用难度>:中等,需要用户认证。

  <综合评定威胁等级>:高危,能造成远程代码执行。

  

 

  漏洞分析

  组件介绍

       YAPI是由去哪儿网移动架构组(简称YMFE,一群由FE、iOS和Android工程师共同组成的具想象力、创造力和影响力的大前端团队)开发的可视化接口管理工具,是一个可本地部署的、打通前后端及QA的接口管理平台。YAPI旨在为开发、产品和测试人员提供更优雅的接口管理服务,可以帮助开发者轻松创建、发布和维护不同项目,不同平台的API。

  2 漏洞描述

  2021年7月8日,深信服安全团队监测到一则YAPI组件存在远程代码执行漏洞的信息,漏洞威胁等级:高危。

  该漏洞是由于没有针对mock模块输入的内容进行检测,攻击者可利用该漏洞在进行简单的注册之后,构造恶意的JS代码绕过沙盒,最终造成远程代码执行。

                                                                                                              影响范围

  在世界范围内,YAPI主要部署在中国、土耳其、美国、新加坡等国家也有少量部署。国内主要分布在浙江、北京、广东等地。目前受影响的YAPI版本:YAPI <= 1.9.2

                                                                                                        漏洞复现

   搭建YAPI组件环境,复现该漏洞,效果如下:

   

   

    

   

                                                                                                                      解决方案

   

    

  1 如何检测组件系统版本

  登录站点主页,可在最下方查看组件版本:

   

  2 官方修复建议

  该漏洞官方暂未发布补丁,请受影响的用户实时关注官网以获取最新信息。链接如下:https://github.com/YMFE/yapi

  3 临时修复建议

  1.关闭YAPI注册功能,在config.json文件中新增配置信息"closeRegister:true",完成之后重启YAPI服务。

  2.在官方修复之前,暂时关闭mock模块

  (1)在config.json文件中新增配置文件"mock:false"

  (2)在exts/yapi-plugin-andvanced-mock/server.js文件中,找到"if (caseData && caseData.case_enable){...}",

  在它上方添加代码:"if(!yapi.WEBCONFIG.mock){return false;}"

  3.及时检查删除恶意账户,同步删除恶意用户创建的接口以及他们上传的恶意mock脚本以防止二次攻击。

  4.对YAPI平台的访问进行限制,防止恶意用户进行攻击。

  4 深信服解决方案

  

  【深信服下一代防火墙】预计2021年7月14日,可防御此漏洞,建议用户将深信服下一代防火墙开启 IPS防护策略,并更新最新安全防护规则,可轻松抵御此高危风险。

  【深信服安全感知平台】预计2021年7月14日,结合云端实时热点高危/紧急漏洞信息,可快速检出业务场景下的该漏洞,并可联动【深信服下一代防火墙等产品】实现对攻击者IP的封堵。