大家好,我是R哥。
這兩天看到 Spring 和 Nacos 官方雙雙釋出了安全漏洞,Spring 爆出的是 DoS 拒絕服務漏洞,Nacos 爆出的是會造成任意檔案讀寫漏洞,下面我會具體說明問題並提供解決辦法。
Spring 釋出的安全漏洞
Spring 釋出的安全漏洞包括兩個:
1、CVE-2024-38809
Spring 框架在處理 HTTP 請求時,當從 “If-Match” 或 “If-None-Match” 條件請求請求頭解析 ETag 請求頭時,很容易會受到 DoS 的攻擊。
If-Match 和 If-None-Match 是 HTTP 協議中的條件請求頭,用於在傳送請求時對資源的狀態進行控制,以避免資料不必要的更新,這兩個請求頭一般與 ETag 一起使用。
影響的 Spring 版本:
- 6.1.0 - 6.1.11;
- 6.0.0 - 6.0.22;
- 5.3.0 - 5.3.37;
- 其他老版本都受影響
解決辦法就是升級到最新安全版本:
漏洞版本 | 安全版本 |
---|---|
6.1.x | 6.1.12 |
6.0.x | 6.0.23 |
5.3.x | 5.3.38 |
如果不想升級版本,也可以加一個 Filter 過濾器,透過過濾器來限制每個 HTTP 請求解析 “If-Match” 或 “If-None-Match” 條件請求請求頭的大小。
2、CVE-2024-38808
使用者可以透過特製的 Spring 表示式語言(SpEL)表示式,造成 DoS 拒絕服務漏洞。
影響的 Spring 版本:
- 5.3.0 - 5.3.38;
- 其他老版本都受影響
所以,修復上面那個 DoS 漏洞的 5.3.38 版本也已經不安全了,這個漏洞的解決辦法就是升級到最新安全版本:Spring 5.3.9 或者 6.0+。
另外,儘量避免對使用者提供的 SpEL 表示式進行求值運算,如果一定要求值,就需要在只讀模式下使用 SimpleEvaluationContext
類進行處理。
所以,最終解決以上兩個漏洞的 Spring 安全版本是:
漏洞版本 | 安全版本 |
---|---|
6.1.x | 6.1.12 |
6.0.x | 6.0.23 |
5.3.x | 5.3.39 |
現在都是 Spring Boot 框架了,建議檢查 Spring 依賴並升級到安全的 Spring Boot 版本,基於 3.1.x 以下的版本都停止維護了,最好的辦法是升級到 3.2.x 及以上的版本:
但是,R哥檢查了下最新的 3.3.2 和 3.2.8 版本,它們還是上個月釋出的,並未釋出適配這兩天釋出的 Spring 6.1.12 安全版本,所以需要等待下一個版本。
有必要的自行替換 Spring Boot 中的 Spring 依賴吧,但需要注意相容性問題。
Spring Boot 基礎就不介紹了,推薦看這個實戰專案:
https://github.com/javastacks/spring-boot-best-practice
Nacos 釋出的安全漏洞
上一篇:Nacos 2.4.0 正式釋出,帶來重磅更新!
Nacos 2.4.0 才釋出不久,Nacos 2.4.1 又來了,這個版本主要是為了修復一個安全漏洞,另外也還增強了幾個功能以及修復一些 bug。
這個漏洞主要是由於 Jraft 請求造成的,受影響的僅為 7848 埠,它一般是 Nacos 叢集間使用 Raft 協議通訊的埠,不會用於處理客戶端的請求,該埠如果被外部請求,會導致任意檔案被讀寫的安全漏洞。
解決辦法:
- 無腦升級 Nacos 到最新版本:2.4.1;
- 老版本可以透過防火牆限制外部請求訪問 7848 埠;
此外,最新發布的 2.4.1 版本還最佳化了 derby ops 介面,預設限制了 derby 資料庫可執行的 SQL 範圍,降低了使用者開啟 derby ops 介面時的風險。
技術更新太快,咱們學習的速度永遠跟不上更新的速度,但話又說回來,開源不易,既然用開源,就得接受開源的弊端和後果,至少開源技術的漏洞很快能被爆出來並被解決。
如今,Spring 和 Nacos 成為了 Java 技術棧的中堅力量,不管是工作需要,或者是跳槽面試,Spring 和 Nacos 都是必學的,它已成為了 Java 程式設計師必備的技術之一。
所以,大家有時間還是要多更新一些技能儲備,不要沉迷在 CRUD 中,久而久之就會被淘汰了。
最後,如果你想系統學習 Spring Cloud + Nacos 如何構建微服務,建議報名R哥最新出品的《Spring Cloud Alibaba 微服務課程》,一次付費,後續都提供免費更新,永久學習。
好了,今天的分享就到這裡了,後續R哥也會繼續關注並分享更多的 Java 技術乾貨,關注公眾號Java技術棧第一時間推送。
版權宣告: 本文系公眾號 "Java技術棧" 原創,轉載、引用本文內容請註明出處,抄襲、洗稿一律投訴侵權,後果自負,並保留追究其法律責任的權利。
更多文章推薦:
1.Spring Boot 3.x 教程,太全了!
2.2,000+ 道 Java面試題及答案整理(2024最新版)
3.免費獲取 IDEA 啟用碼的 7 種方式(2024最新版)
覺得不錯,別忘了隨手點贊+轉發哦!