Spring framework CVE-2024-38816/CVE-2024-38819

這兩個連續在 2024/9/12 以及 2024/10/17 發佈的 CVE,主要是針對使用了 Spring WebMVC 或是 Spring WebFlux 這兩個網頁函式庫的應用程式

這兩個連續在 2024/9/12 以及 2024/10/17 發佈的 CVE,主要是針對使用了 Spring WebMVC 或是 Spring WebFlux 這兩個網頁函式庫的應用程式,在「靜態資源」的存取上,會讓攻擊者可以透過惡意的 HTTP Request,在這個 Spring 應用程式的環境裡進行檔案操作(真的蠻恐怖的)。

不過有趣的事情是,針對這兩個 CVE,以下兩種情況是免疫的:

  1. 這個 Spring 應用程式在 Tomcat 或是 Jetty 上面執行(一大堆人鬆了一口氣)
  2. 這個 Spring 應用程式有啟用 Spring Security HTTP Firewall(在台灣,應該 99% 有啟用 Spring Security 的 Spring 應用程式沒啟用這個功能,而且 Spring WebMVC/Spring WebFlux 也不是非啟用 Spring Security 不可)

換句話說,Spring 應用程式如果不是執行在 Tomcat 上面的使用者,就要繃緊神經了,而且通常這樣的使用者,應該都是企業級的使用者(比方說 IBM WebSphere/Redhat JBoss 的使用者),所以應該要盡快修正這個問題。

不過目前有修正的版本,除了 6.1.14 是屬於 OSS(Open-Source Software)可以直接下載新版之外,6.0.x 以及 5.3.x 都必須要有 Spring Enterprise Support 才能下載;所以還沒升級到 Spring 6.1.14 嗎?踢到鐵板嗎?歡迎找我討論!

markkwsu

markkwsu

3 comments

  • 您好,感謝您提供的資訊,但看了CVE-2024-38819官方公告並未提到可用Tomcat 或是 Jetty避免這漏洞,請問大大您有相關官方連結可提供參考嗎?

    • Hi Vincent,

      的確在 CVE-2024-38819 官方公告,並沒有提到這個問題是否在 Tomcat 或是 Jetty 環境免疫,不過看了一下 Spring 團隊在 GitHub 上面的 fix,看起來比較像是 CVE-2024-38816 修正漏考慮了一些邏輯,所以才在 CVE-2024-38819 補上;只能大膽假設 CVE-2024-38819 在 Tomcat 或是 Jetty 環境免疫了。

      GitHub 參考網址:https://github.com/spring-projects/spring-framework/pull/33568