觀點 · 資訊分享
Spring Boot 4.0 預設防護在特定組合下形同虛設:CVE-2026-40976 評分 9.1,升到 4.0.6 就解決
Spring Boot 4.0.0 到 4.0.5,如果沒自己寫 Spring Security 設定、又用了 Actuator 卻沒帶 health 模組,預設的網頁防護會失效,所有端點都可能被未登入的人直接存取。專案早在 4 月 23 日就公告並釋出 4.0.6。
- 發布
- 2026-04-28
- 篇幅
- 約 3 分鐘 · 1,464 字
- 結構
- 7 節 + 3 題常見問題
- 標籤

一句話看懂:Spring Boot 4.0.0 到 4.0.5 在四個條件同時成立時,預設的網頁防護會失效;專案早在 4 月 23 日就釋出修正版 4.0.6。

先用白話講:預設防護是什麼?
想像你開了一間店,裝潢公司送你一道「預設大門鎖」,不用你自己設定就會鎖著。Spring Boot 的預設網頁防護就是這道鎖:你沒有自己寫任何安全設定時,它會替你擋住沒登入的人。
這次的問題是:在特定組合下,這道鎖其實沒有鎖上,任何人都能直接走進店裡。
發生什麼事
- 4 月 23 日:Spring 專案發布安全公告,編號 CVE-2026-40976,嚴重度 Critical,同時釋出修正版 4.0.6
- 4 月 28 日:這個 CVE 在 NVD 與 GitHub 安全資料庫公開收錄,CVSS 評分 9.1
也就是說,這不是 4 月 28 日才突然爆出來的新漏洞,而是專案早已公告、當天才進到公開資料庫。
誰會中?四個條件要同時成立
| # | 條件 |
|---|---|
| 1 | 是 Servlet 型的網頁應用 |
| 2 | 沒有自己寫 Spring Security 設定,完全靠預設的防護 |
| 3 | 依賴 spring-boot-actuator-autoconfigure |
| 4 | 不依賴 spring-boot-health |
官方明確寫:只要有任何一項不符合,就不受影響。受影響版本是 Spring Boot 4.0.0 到 4.0.5。
換句話說,如果你的專案已經自己寫了 Spring Security 設定,或者本來就有帶 health 模組,就不需要因為這則公告緊張;但如果是別人留下來、沒人記得設定過什麼的專案,建議還是逐項對照一次。
給開發者的技術細節
- 修正方式:升級到 4.0.6(開源版即可取得),官方表示不需要其他緩解步驟
- 風險面:CVSS 向量為網路可達、低複雜度、不需權限、不需使用者操作,機密性與完整性影響皆為高
- 自查:檢查專案依賴樹(例如 Maven 的
mvn dependency:tree)有沒有第 3、4 項的模組,並確認有沒有自己的SecurityFilterChain設定 - 補強:就算沒中,也建議自己明確寫出授權規則,不要把安全完全交給預設值
我的看法
我自己用的主力是 Nuxt 與 .NET,不是 Spring,但這類「預設值在特定組合下失效」的問題很值得借鏡。接案時常遇到客戶的專案是別人留下來的,沒人記得有沒有自己寫過安全設定,這時候最容易中這種漏洞。
實務上我會做兩件事:一是升級時順便把授權規則寫明白,不依賴預設;二是對外的管理端點(像 Actuator)一律另外限制來源或加驗證。預設值方便,但出事時沒有人會替它負責。
名詞小辭典
- CVE:全球通用的資安漏洞編號,方便不同廠商用同一個名字稱呼同一個漏洞。
- Actuator:Spring Boot 內建的監控功能,會開放健康狀態、指標等管理端點。
- CVSS:漏洞嚴重度的評分制度,滿分 10,9.0 以上算 Critical(嚴重)。
- 過濾鏈(Filter Chain):請求進到網站時依序經過的一串檢查關卡,登入與權限檢查就放在這裡。
資料來源
常見問題
我怎麼知道自己有沒有中?
對照四個條件:是不是 Servlet 型網頁應用、有沒有自己寫 Spring Security 設定、有沒有依賴 spring-boot-actuator-autoconfigure、有沒有依賴 spring-boot-health。四個全部符合才受影響,任何一個不符合就不受影響。
舊的 3.x 版本會中嗎?
官方公告列出的受影響範圍只有 Spring Boot 4.0.0 到 4.0.5,沒有列出 3.x,因此以官方公告為準。
這個漏洞是 4 月 28 日才被發現的嗎?
不是。Spring 專案早在 4 月 23 日就發布公告,4 月 28 日是它在 NVD 與 GitHub 安全資料庫公開收錄 CVE 編號的日期。
接著讀
全部觀點 →Apache CXF 一次修 5 個嚴重漏洞:OAuth 的 IP 綁定檢查寫反了,反而放行外人Java 服務框架 Apache CXF 一次公開 5 個 9 分以上的漏洞,包含 OAuth2 的 IP 綁定判斷寫反、JWT 沒驗受眾、XXE 與兩個 JNDI 注入。官方建議升級到 4.2.2、4.1.7 或 3.6.12。閱讀 →Tomcat 的 DIGEST 驗證漏洞:不存在的帳號,密碼打「null」就過關(CVE-2026-43512,CVSS 9.8)Apache Tomcat 在設定 DIGEST 驗證時,任何不在帳號庫裡的使用者,只要密碼填 null 就會被判定為驗證成功。影響 9.0、10.1、11.0 三條版本線,官方已釋出修正版。閱讀 →Argo CD 唯讀帳號可透過 ServerSideDiff 讀到明文 Secret:5 月 1 日已公告,3.3.9 修正Argo CD 3.2.0 到 3.3.8 的 ServerSideDiff 端點沒有遮蔽 Kubernetes Secret,擁有唯讀權限的使用者可能取得明文機密。專案在 5 月 1 日已公告嚴重等級 Critical(9.6)並釋出 3.2.11 與 3.3.9,NVD 在 5 月 2 日收錄。閱讀 →