突发!Spring Cloud Function远程代码执行漏洞

1#漏洞描述
近日,网络安全圈子内有关于 Spring Cloud Function远程代码执行漏洞的细节被流传,团队成员拿到后,经过分析后确认漏洞存在且有效。

Spring Cloud Function 是基于 Spring Boot 的函数计算框架,它抽象出所有传输细节和基础架构,允许开发人员保留所有熟悉的工具和流程,并专注于业务逻辑。
由于Spring Cloud Function中RoutingFunction类的apply方法将请求头中的“spring.cloud.function.routing-expression”参数作为Spel表达式进行处理,造成了Spel表达式注入漏洞,攻击者可利用该漏洞远程执行任意代码。

2#影响版本
3.0.0.RELEASE <= Spring Cloud Function <= 3.2.2

3#漏洞细节
CVE编号:暂无
漏洞类型:远程代码执行
漏洞级别:高危,能造成远程代码执行
Poc:已公开
在野利用:暂未发现
用户认证:不需要
用户交互:不需要
攻击复杂度:低
Github:https://github.com/spring-cloud/spring-cloud-function/commit/0e89ee27b2e76138c16bcba6f4bca906c4f3744f

团队成员第一时间进行复现,截图如下:

漏洞位于 RoutingFunctionTests.java 的128行,可以清楚地看出Http头部构造方式
从官方补丁对比可看出新增了SimpleEvaluationContext,用于限制外部输入解析,在解析前先判断 spring.cloud.function.routing-expression的值是否取自http头,外部输入使用SimpleEvaluationContext,非外部输入使用StandardEvaluationContext进行解析

4#漏洞自检
用户可排查应用程序中对spring-cloud-function组件的引用情况,并检查当前使用的版本:
若程序使用Maven打包,可查看项目的pom.xml文件中是否引入相关组件:
对使用了org.springframework.cloud:spring-cloud-function-context组件的项目代码,可使用以下命令查看版本:
grep-A 2'spring-cloud-function-context'pom.xml
若当前版本在受影响范围内,则存在安全风险。

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

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

本博客所有文章如无特别注明均为原创。作者:渊龙Sec团队复制或转载请以超链接形式注明转自 渊龙Sec安全团队博客
原文地址《突发!Spring Cloud Function远程代码执行漏洞
分享到:更多

相关推荐

发表评论

路人甲 表情
看不清楚?点图切换 Ctrl+Enter快速提交

网友评论(0)