Spring Cloud Function SPEL表达式注入漏洞通告

一、漏洞概述

近日,绿盟科技CERT监测到Spring Cloud官方修复了一个Spring Cloud Function中的SPEL表达式注入漏洞,由于Spring Cloud Function中RoutingFunction类的apply方法将请求头中的“spring.cloud.function.routing-expression”参数作为Spel表达式进行处理,造成了Spel表达式注入漏洞,攻击者可利用该漏洞远程执行任意代码。目前漏洞PoC已公开,请相关用户采取措施进行防护。

Spring Cloud Function 是基于Spring Boot 的函数计算框架,它抽象出所有传输细节和基础架构,允许开发人员保留所有熟悉的工具和流程,并专注于业务逻辑。

绿盟科技已第一时间复现成功:

参考链接:

https://github.com/spring-cloud/spring-cloud-function/commit/0e89ee27b2e76138c16bcba6f4bca906c4f3744f

二、影响范围

受影响版本

  • 3.0.0.RELEASE <= Spring Cloud Function <= 3.2.2

注:发布时间为2019年11月22日至2022年2月17日

三、漏洞检测

3.1 人工检测

用户可排查应用程序中对spring-cloud-function组件的引用情况,并检查当前使用的版本:

若程序使用Maven打包,可查看项目的pom.xml文件中是否引入相关组件:

对使用了org.springframework.cloud:spring-cloud-function-context组件的项目代码,可使用以下命令查看版本:

grep-A 2'spring-cloud-function-context'pom.xml

若当前版本在受影响范围内,则存在安全风险。

四、漏洞防护

4.1 官方升级

目前官方已针对此漏洞发布修复补丁,请受影响的用户尽快更新进行防护,官方链接:https://github.com/spring-cloud/spring-cloud-function/commit/0e89ee27b2e76138c16bcba6f4bca906c4f3744f

注:目前官方暂未发布新版本,请持续关注并及时更新:https://github.com/spring-cloud/spring-cloud-function/tags

声明

本安全公告仅用来描述可能存在的安全问题,绿盟科技不为此安全公告提供任何保证或承诺。由于传播、利用此安全公告所提供的信息而造成的任何直接或者间接的后果及损失,均由使用者本人负责,绿盟科技以及安全公告作者不为此承担任何责任。

绿盟科技拥有对此安全公告的修改和解释权。如欲转载或传播此安全公告,必须保证此安全公告的完整性,包括版权声明等全部内容。未经绿盟科技允许,不得任意修改或者增减此安全公告内容,不得以任何方式将其用于商业目的。

Spread the word. Share this post!

Meet The Author