觀點 · 資訊分享

Tomcat 的 DIGEST 驗證漏洞:不存在的帳號,密碼打「null」就過關(CVE-2026-43512,CVSS 9.8)

Apache Tomcat 在設定 DIGEST 驗證時,任何不在帳號庫裡的使用者,只要密碼填 null 就會被判定為驗證成功。影響 9.0、10.1、11.0 三條版本線,官方已釋出修正版。

發布
2026-05-13
篇幅
約 4 分鐘 · 1,690 字
結構
8 節 + 3 題常見問題
標籤
#Apache Tomcat#CVE-2026-43512#認證繞過#Java#DIGEST
Tomcat 的 DIGEST 驗證漏洞:不存在的帳號,密碼打「null」就過關(CVE-2026-43512,CVSS 9.8)

一句話看懂:Apache Tomcat 在使用 DIGEST 驗證時,不存在的帳號只要密碼填 null 就會通過;影響 9.0、10.1、11.0 三條版本線,升級到修正版就能解決。

Tomcat DIGEST 驗證可被繞過資訊圖卡:不存在的帳號,密碼填 null 也能通過驗證

先用白話講:這個漏洞是什麼?

想像社區大樓的警衛,規定是「出示住戶名單上的人名和暗號才能進去」。結果警衛有個疏漏:如果來的人不在名單上,只要他說暗號是「null」,警衛就當作沒問題直接放行。

這就是這個漏洞的原理。Tomcat 是很多 Java 網站在用的伺服器軟體,它支援一種叫 DIGEST 的登入驗證方式。官方公告指出,設定了 DIGEST 驗證之後,任何不在設定的帳號庫(Realm)裡的使用者,只要密碼是「null」,就會被當成驗證成功。

發生什麼事

  • 漏洞編號 CVE-2026-43512,嚴重度 Critical,CVSS 分數 9.8
  • GitHub 在 5 月 12 日把這則公告收進安全資料庫,NVD 同日也有發布
  • 弱點類型是 CWE-287,也就是驗證不完整(Improper Authentication)
  • 評分向量顯示:可從網路攻擊、不需要權限、不需要使用者互動,且對機密性、完整性、可用性的衝擊都是高

哪些版本受影響

版本線 受影響範圍 修正版本
Tomcat 11.0 11.0.0-M1 到 11.0.21 11.0.22
Tomcat 10.1 10.1.0-M1 到 10.1.54 10.1.55
Tomcat 9.0 9.0.0.M1 到 9.0.117 9.0.118

官方也提到,更舊、已經不再支援的版本可能同樣受影響,但不會有修正版,這些版本需要規劃升級。

我該怎麼辦

  1. 先確認自己有沒有用 Tomcat,以及是否設定了 DIGEST 驗證(通常寫在 web.xml 的登入設定中)
  2. 如果有,盡快升級到上表的修正版本
  3. 如果你用的是內嵌的 Tomcat(例如某些 Java 框架內建),也要看對應的相依套件是否已更新;公告列出的受影響套件包含 tomcat-embed-core、tomcat、tomcat-catalina
  4. 升級後,建議檢查近期的登入紀錄,看有沒有不認識的帳號成功登入

給開發者的技術細節

  • GitHub 公告列出的 Maven 套件:org.apache.tomcat.embed:tomcat-embed-core、org.apache.tomcat:tomcat、org.apache.tomcat:tomcat-catalina,修正版本都是 9.0.118、10.1.55、11.0.22
  • 這個弱點讓「驗證」這一步被繞過;通過驗證之後能不能存取特定頁面,還取決於該頁面的授權設定(例如角色限制)。這部分官方公告沒有詳細說明,不要因此就當作沒風險
  • 官方公告沒有提供其他暫時緩解辦法,建議以升級為主

我的看法

我平常做網站多半是 Nuxt、.NET,比較少直接碰 Tomcat,但接手舊系統的時候常常會遇到:老舊的 Java 管理後台、某些設備或軟體內建的網頁介面,背後就是 Tomcat。這類系統最麻煩的是沒人記得它用什麼驗證方式、也沒人定期更新。

這個漏洞好懂但殺傷力大:不用猜密碼、不用任何技巧,只要知道這個奇怪的規則就能試。如果你手上有接手來的 Java 系統,這幾天建議花十分鐘確認 Tomcat 版本。至少先確認它有沒有直接暴露在網路上;如果沒有,風險會小很多,但仍然要排進更新計畫。

名詞小辭典

  • Tomcat:很常見的 Java 網站伺服器軟體,負責執行 Java 寫的網站程式。
  • DIGEST 驗證:一種網頁登入方式,不直接傳送密碼,而是傳送由密碼算出的雜湊值。
  • Realm:Tomcat 用來存放「有哪些帳號與密碼」的帳號庫。
  • CVSS:評估資安漏洞嚴重程度的分數,滿分是 10。

資料來源

常見問題

DIGEST 驗證是什麼?
一種網頁登入驗證方式,瀏覽器不會直接把密碼送出去,而是先用密碼算出一串雜湊值再比對。Tomcat 可以在設定中選擇用這種方式保護網頁。
我一定會中嗎?
只有設定了 DIGEST 驗證的 Tomcat 才受影響。沒有用這種驗證方式的網站,這個漏洞官方描述的情境並不適用;建議仍檢查自己的設定。
要怎麼修?
升級到 Tomcat 11.0.22、10.1.55 或 9.0.118 以上的版本。官方公告沒有提供其他的暫時緩解辦法。
LINE