关于java:Spring-Cloud-Function-300RELEASE322版本SPEL-表达式注入

27次阅读

共计 1768 个字符,预计需要花费 5 分钟才能阅读完成。

实验室昨天第一工夫监测到的 0day 破绽,目前已上线检测

一、简述

3 月 25 日,墨菲平安实验室监测发现 Spring Cloud Function 修复了 Spel 表达式注入破绽,已 2022.03.25 日 17 时提交 CNVD,并上线检测能力。

破绽发现工夫:2022-03-24

破绽验证工夫:2022-03-25,已第一工夫提交 CNVD

题目:Spring Cloud Function 3.0.0.RELEASE~3.2.2 版本 SPEL 表达式注入破绽

发现形式:墨菲平安实验室情报预警监控

语言:java

影响组件及版本:org.springframework.cloud:spring-cloud-function-context(影响版本:3.0.0.RELEASE~3.2.2)

缺点前置条件:properties 中配置 spring.cloud.function.definition=functionRouter

破绽形容
Spring Cloud Function 是 Spring cloud 中的 serverless 框架。
Spring Cloud Function 中的 RoutingFunction 类的 apply 办法将申请头中的“spring.cloud.function.routing-expression”参数作为 Spel 表达式进行解决,造成 Spel 表达式注入破绽。
攻击者可通过该破绽执行任意代码。

破绽类型:Spel 表达式注入破绽

排查形式

  1. 在我的项目代码目录中执行以下命令获取 org.springframework.cloud:spring-cloud-function-context 组件版本,且组件版本在【3.0.0.RELEASE~3.2.2】之间

grep -A 2 ‘spring-cloud-function-context’ pom.xml

  1. 应用墨菲平安客户端进行检测

处理倡议
官网已公布批改补丁,参考链接:https://github.com/spring-clo…
降级 org.springframework.cloud:spring-cloud-function-context 到 3.2.2 的下一版本(待发布)

破绽评分:8.5

参考链接:https://github.com/spring-cloud/spring-cloud-function/commit/0e89ee27b2e76138c16bcba6f4bca906c4f3744f

二、缺点剖析

通过 diff 能够发现开发者应用了 SimpleEvaluationContext 进行 SPEL 解析,而在此前版本中应用 StandardEvaluationContext。

当 spring.cloud.function.definition=functionRouter 配置开启时,会触发 RoutingFunction 逻辑,当传入的 spring.cloud.function.routing-expression 参数可控,SPEL 表达式被执行。

三、破绽防护

目前开发者已提交修复补丁:https://github.com/spring-cloud/spring-cloud-function/commit/0e89ee27b2e76138c16bcba6f4bca906c4f3744f

墨菲平安已于昨天第一工夫将破绽上报 CNVD,并同步上线了检测能力,目前墨菲平安开源版及企业版已反对检测,欢送大家收费应用。

开源地址:https://github.com/murphysecurity
产品官网:https://www.murphysec.com/(限时开放注册)

四、对于

对于墨菲平安
墨菲平安是一家为您提供业余的软件供应链平安治理的科技翻新公司,能力包含开源组件平安检测、云原生容器平安、开源组件许可证合规治理、软件成分剖析(SCA)、软件供应链平安评估等,丰盛的平安工具助您打造齐备的软件开发平安能力(DevSecOps)。公司外围团队来自百度、华为、贝壳等企业,领有超过十年的企业平安建设、平安产品研发及平安攻防教训。

对于墨菲平安实验室
墨菲平安实验室是墨菲平安旗下的平安钻研团队,专一于软件供应链平安相干畛域的技术钻研,实验室钻研方向包含开源组件、闭源软件及其他供应链软件的缺点剖析,从而打造墨菲平安业余的缺点知识库。

正文完
 0