突发!Spring Cloud 也沦陷了。。。

突发!Spring Cloud 也沦陷了。。。

大家好,我是栈长。

相信大家看到了昨天的 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

版权声明: 本文系公众号 “Java技术栈” 原创,原创实属不易,转载、引用本文内容请注明出处,抄袭者一律举报+投诉,并保留追究其法律责任的权利。

近期热文推荐:

1.1,000+ 道 Java面试题及答案整理(2022最新版)

2.劲爆!Java 协程要来了。。。

3.Spring Boot 2.x 教程,太全了!

4.别再写满屏的爆爆爆炸类了,试试装饰器模式,这才是优雅的方式!!

5.《Java开发手册(嵩山版)》最新发布,速速下载!

觉得不错,别忘了随手点赞+转发哦!

hmoban主题是根据ripro二开的主题,极致后台体验,无插件,集成会员系统
自学咖网 » 突发!Spring Cloud 也沦陷了。。。