Spring Cloud Gateway 爆高危漏洞....赶紧修复
Spring Cloud Gateway 是 Spring Cloud 下的一个项目,该项目是基于 Spring 5.0、Spring Boot 2.0 和 Project Reactor 等技术开发的网关,它旨在为微服务架构提供一种简单有效、统一的 API 路由管理方式。
漏洞1:Spring Cloud Gateway 远程代码执行漏洞(CVE-2022-22947)
使用 Spring Cloud Gateway 的应用如果对外暴露了 Gateway Actuator 端点时,则可能存在被 CVE-2022-22947 漏洞利用的风险。攻击者可通过利用此漏洞执行 SpEL 表达式,允许在远程主机上进行任意远程执行。,获取系统权限。
影响范围
漏洞利用的前置条件:
- 除了 Spring Cloud Gateway 外,程序还用到了 Spring Boot Actuator 组件(它用于对外提供 /actuator/ 接口);
- Spring 配置对外暴露 gateway 接口,如 application.properties 配置为:
# 默认为true
management.endpoint.gateway.enabled=true
# 以逗号分隔的一系列值,默认为 health
# 若包含 gateway 即表示对外提供 Spring Cloud Gateway 接口
management.endpoints.web.exposure.include=gateway
漏洞影响的 Spring Cloud Gateway 版本范围:
- Spring Cloud Gateway 3.1.x < 3.1.1
- Spring Cloud Gateway 3.0.x < 3.0.7
- 其他旧的、不受支持的 Spring Cloud Gateway 版本
解决方案
更新升级 Spring Cloud Gateway 到以下安全版本:
- Spring Cloud Gateway 3.1.1
- Spring Cloud Gateway 3.0.7
或者在不考虑影响业务的情况下禁用 Gateway actuator 接口:
在application.properties 中设置 :
management.endpoint.gateway.enabled 为 false。
漏洞2:CVE-2022-22946:Spring Cloud Gateway HTTP2 不安全的 TrustManager
使用配置为启用 HTTP2 且未设置密钥存储或受信任证书的 Spring Cloud Gateway 的应用程序将被配置为使用不安全的 TrustManager。这使得网关能够使用无效或自定义证书连接到远程服务。
影响范围
Spring Cloud Gateway = 3.1.0
解决方案
官方已经发布安全版本,请升级到3.1.1+