近日,Spring Cloud Function 官方测试用例曝光了 Spring Cloud Function SPEL 表达式注入漏洞,可利用该漏洞通过注入 SPEL 表达式来触发远程命令执行。
Spring Cloud Function 是一个基于 Spring Boot 的函数计算框架。通过抽象传输细节和基础设施,为开发者保留熟悉的开发工具和开发流程,让开发者专注于实现业务逻辑,从而提高开发效率。
Spring Cloud Function 是一个具有以下高级目标的项目:
通过函数促进业务逻辑的实现。
将业务逻辑的开发生命周期与任何特定的运行时目标分离,以便相同的代码可以作为 Web 端点、流处理器或任务运行。
支持跨 无服务器 提供商的统一编程模型,以及独立运行(本地或在 PaaS 中)的能力。
在无服务器提供程序上启用 Spring Boot 功能(自动配置、依赖注入、指标)。
它抽象出所有传输细节和基础设施,允许开发人员保留所有熟悉的工具和流程,并专注于业务逻辑。
目前,Spring Cloud Function 已被许多科技巨头采用,包括 AWS Lambda、Azure、Google Cloud Functions、Apache OpenWhisk,可能还有其他“无服务器”服务提供商。
该漏洞已被归类为 严重 ,CVSS 得分为 9.0(满分 10)。
好消息是,只有 Spring Cloud Function 的某些版本特定配置(版本 3 <= 版本 <= 3.2.2)的动态路由受到影响。
坏消息是 SpEL 表达式有各种变体,例如 charset 和 replace,并且 在撰写本文时还 没有正式 发布 新版本。此外,针对此严重漏洞的 Exploit 已在 Internet 上提供。