大家好,我是棧長。 相信大家看到了昨天的 Spring 漏洞,嚴重級別僅為中等,不必慌張, 棧長沒想到的是,自這個月初 Spring Cloud Gateway 突發高危漏洞,現在 Spring Cloud 另外一個 Spring Cloud Function 模塊也淪陷了。。。 來看最新昨天 Sp ...
大家好,我是棧長。
相信大家看到了昨天的 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 功能:
它就是 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最新版)
4.別再寫滿屏的爆爆爆炸類了,試試裝飾器模式,這才是優雅的方式!!
覺得不錯,別忘了隨手點贊+轉發哦!