突发!Spring Cloud 也沦陷了。。。
点击关注公众号,Java干货及时送达
大家好,我是栈长。
相信大家看到了昨天的 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 可以把 Function
、Consumer
、Supplier
类型的接口包装成 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技术栈" 原创,原创实属不易,转载、引用本文内容请注明出处,抄袭者一律举报+投诉,并保留追究其法律责任的权利。
23 种设计模式实战(很全)
Spring Boot 保护敏感配置的 4 种方法!再见单身狗!Java 创建对象的 6 种方式阿里为什么推荐使用 LongAdder?AnotherRedisDesktopManager 开始收费了?别再写爆爆爆炸类了,试试装饰器模式!Java 18 发布,默认 UTF-8,finalize 被弃用。。
Spring Boot 3.0 M1 发布,正式弃用 Java 8Spring Boot 学习笔记,这个太全了!
关注Java技术栈看更多干货