近日,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 上提供。