1.基本介绍
1.漏洞说明:
2022年3月1日,VMware官方发布漏洞报告,在使用Spring Colud Gateway的应用程序开启、暴露Gateway Actuator端点时,会容易造成代码注入攻击,攻击者可以制造恶意请求,在远程主机进行任意远程执行。
2.漏洞编号:
CVE-2022-22947
3.影响范围:
-
Spring Cloud Gateway 3.1.x < 3.1.1
-
Spring Cloud Gateway 3.0.x < 3.0.7
-
旧的、不受支持的版本也会受到影响
4.漏洞级别:
高危
2.漏洞复现
1.部署并且启动环境:
通过vulhub靶场使用docker拉取环境,需要在本地搭建Vulhub靶场。
2.访问服务:
3.添加过滤器(POST):
4.刷新过滤器(POST):
5.访问过滤器ID(GET):
6.得到执行结果:
3.原理分析
1.问题:
为什么添加过滤器(路由)会导致代码执行?
2.流程:
-
开启Acutator,可以通过接口列出路由(包括过滤器),如:/actuator/gateway/routes
-
可以通过/gateway/routes/{id_route_to_create}创建路由
-
通过/actuator/gateway/refresh刷新路由
-
当路由带有恶意的Filter,里面的spEL表达式会被执行
3.payload分析:
#{new
String(T(org.springframework.util.StreamUtils).co
pyToByteArray(T(java.lang.Runtime).getRuntime().
exec(new
String[]{"whoami"}).getInputStream()))}
4.扫描修复
1.更新升级SpringCloudGateway到以下安全版本:
-
SpringCloudGateway>=3.1.1
-
SpringCloudGateway>=3.0.7
2.或在不考虑影响业务的情况下禁用Actuator接口
management.endpoint.gateway.enable:false