type
status
date
slug
summary
tags
category
icon
password
Spring Cloud Gateway 是由 spring 官方基于 Spring5.0、Spring Boot2.x、Project Reactor 等技术开发的 网关,作用为,安全认证,鉴权,限流,负载均衡,黑白名单,日志监控,性能监控,路由.
CVE-2022-22947
版本:
Spring Cloud Gateway 3.1.x < 3.1.1
Spring Cloud Gateway 3.0.x < 3.0.7,3.0及以下
漏洞原理
GatewayFilterFactory继承了ShortcutConfigurable,其中的 StandardEvaluationContext 允许调用表达式。RewritePathGatewayFilterFactory等过滤器类实现了GatewayFilterFactory
RewritePath 参数可以应用在actuator中.
网关Actuators (执行器)使用get请求可以显示其默认内容

流程
Actuators 提供管理功能,因此网关执行器当然允许您添加和删除路由。
开启acutator后可以通过访问/actuator/gateway/routes列出路由
通过/gateway/routes/{id_route_to_create}创建路由。
然后通过/actuator/gateway/refresh刷新路由,重新加载配置使得路由生效。
攻击者可以添加带有filter的恶意路由,当重新加载路由时,触发StandardEvaluationContext 对表达式进行解析.
防御和修复
更新升级 Spring Cloud Gateway 至最新版本。
在不影响业务的情况下,禁用 Gateway actuator 接口:如application.properties 中配置 management.endpoint.gateway.enabled 为 false。