大家好,我是栈长。

相信大家看到了昨天的 Spring 漏洞,严重级别仅为中等,不必慌张,

栈长没想到的是,自这个月初 Spring Cloud Gateway 突发高危漏洞,现在 Spring Cloud 另外一个 Spring Cloud Function 模块也沦陷了。。。

来看最新昨天 Spring 官方博客发布的漏洞声明:

漏洞描述:

在使用路由功能时,用户可以制作特制的 SpEL 表达式作为路由表达式,从而导致用户可以 访问本地资源 的漏洞。

严重级别:中等(不必惊慌)

影响范围:

  • Spring Cloud Function 3.1.6 & 3.2.2
  • 其他老版本、不受支持的版本也会受到影响

解决方案:

手动升级到最新版本:Spring Cloud Function 3.1.7 & 3.2.3


如果你想关注和学习最新、最主流的 Java 技术,可以持续关注公众号Java技术栈,公众号第一时间推送。

Spring Cloud Function 扫盲:

Spring Cloud Function 它是 Spring Cloud 项目中的一个子项目,提供了 Spring 开发人员利用 serverless(无服务器架构)或 FaaS(Function as a Service,功能即服务) 的功能的能力。它抽象出了所有传输细节和基础设施,允许开发人员保留所有熟悉的工具和流程,并专注于业务逻辑。

简单来说,Spring Cloud Function 可以把 FunctionConsumerSupplier类型的接口包装成 Bean,并可以像 Controller 一样通过 HTTP 接口,或者也可以像 MQ 消息(RabbitMQ, Kafka…)的形式暴露出去被外部访问。

来写一个简单的 helloWorld 的例子,对任何输入参数前面加一个 hello:

@SpringBootApplication
public class Application {

  public static void main(String[] args) {
    SpringApplication.run(Application.class, args);
  }

  @Bean
  public Function<String, String> helloWorld() {
    return value -> "hello:" + value;
  }

}

没错,这里的 Function 就是指 JDK 中的 java.util.Function

它就是 Spring Cloud Function 使用的函数式编程模型的基础。

启动 Spring Boot 项目之后,这个函数就可以被 HTTP/ MQ 形式访问了,不需要再额外的定义额外的类和 Spring MVC 之类的注解,是不是很新颖?

没用过的可以了解下,感兴趣的可以深入研究下 Spring 的 serverless 功能:

https://spring.io/serverless

它就是 Spring Cloud Function 项目所支撑的。


话说回来,本次 Spring Cloud Function 项目的漏洞还是 Spring – SpEL 表达式的引发的连带漏洞!!!

目前不知道还有没有其他 Spring Cloud 子项目受影响,有在用 Spring Cloud Function 这个项目的朋友,大家赶紧检查升级保平安吧!

最后,如果你想关注和学习最新、最主流的 Java 技术,可以持续关注公众号Java技术栈,公众号第一时间推送。

参考:https://tanzu.vmware.com/security/cve-2022-22963

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。

发表回复

您的电子邮箱地址不会被公开。