觀點 · 資訊分享

Apache CXF 一次修 5 個嚴重漏洞:OAuth 的 IP 綁定檢查寫反了,反而放行外人

Java 服務框架 Apache CXF 一次公開 5 個 9 分以上的漏洞,包含 OAuth2 的 IP 綁定判斷寫反、JWT 沒驗受眾、XXE 與兩個 JNDI 注入。官方建議升級到 4.2.2、4.1.7 或 3.6.12。

發布
2026-06-13
篇幅
約 4 分鐘 · 1,715 字
結構
8 節 + 3 題常見問題
標籤
#Apache CXF#CVE-2026-50628#OAuth2#Java
Apache CXF 一次修 5 個嚴重漏洞:OAuth 的 IP 綁定檢查寫反了,反而放行外人

一句話看懂:Java 框架 Apache CXF 一次公開 5 個 9 分以上的嚴重漏洞,其中 OAuth2 的 IP 綁定檢查寫反,會放行不該放行的人。

Apache CXF 5 個嚴重漏洞資訊圖卡:IP 綁定的判斷寫反,該擋的放行、該放的反而擋,另有 XXE 與 JNDI 注入

先用白話講:CXF 的漏洞是什麼意思?

CXF 像是 Java 後端的「櫃台系統」,負責接待各種網路請求、核對憑證。這次出問題的地方,好比櫃台人員把規則看反了:「只有這位客人能進」被執行成「除了這位客人,其他人都能進」。

發生什麼事

Apache CXF 公開了一批安全公告,NVD 與 GitHub 在 2026 年 6 月 12 日收錄;Apache 的公告也出現在 6 月 11 日的 oss-security 郵件列表上。以下是其中 5 個:

CVE 問題 CVSS
CVE-2026-50628 OAuth2:IP 綁定檢查寫反 9.8
CVE-2026-50627 OAuth2:JWT 沒驗受眾(aud) 9.1
CVE-2026-49875 XXE(XML 外部實體) 9.8
CVE-2026-50632 JMS 設定的 JNDI 注入 9.8
CVE-2026-50633 JCA 整合的 JNDI 注入 9.8

官方公告頁上還列了其他 CXF 漏洞,這篇只整理上面五個。

各個漏洞在說什麼?

  • IP 綁定寫反(50628):啟用這個安全功能後,邏輯錯誤讓綁定 IP 的合法請求被拒絕,其他 IP 的請求反而被放行
  • JWT 沒驗受眾(50627):發給 A 服務的令牌,可以拿去 B 服務重複使用,官方稱為令牌混淆與路由攻擊
  • XXE(49875):解析 XML 時沒做必要的安全設定,可能被用來外部讀取資源
  • JNDI 注入(50632、50633):JMS 設定若允許不受信任的人修改,或 JCA 部署描述檔被竄改,就可能執行程式碼;50632 是先前 CVE-2026-44417 修補不完整的後續

該怎麼因應?

  1. 先確認專案有沒有用到 CXF:看 Maven 或 Gradle 的依賴清單,注意它可能是被別的套件間接帶進來的
  2. 找出版本後,升級到上表對應的修補版
  3. 暫時無法升級的話,先確認 JMS、JCA 的設定不能被不受信任的人修改,也不要啟用用不到的 OAuth2 功能

給開發者的技術細節

套件 修補版
cxf-rt-rs-security-oauth2(50628、50627) 4.2.2、4.1.7
cxf-core(49875) 4.2.2、4.1.7、3.6.12
cxf-rt-transports-jms(50632) 4.2.2、4.1.7、3.6.12
cxf-integration-jca(50633) 4.2.2、4.1.7
  • Maven 專案可用依賴樹指令找出實際用到的 CXF 版本
  • 如果用的是 3.6 系列,OAuth2 與 JCA 這兩個公告沒有列出 3.6 的修補版,請以官方公告頁為準

我的看法

我自己沒有直接用 CXF,但接案時偶爾會遇到客戶的舊 Java 系統,裡面有沒有 CXF 常常沒人說得清楚。這類框架通常藏在更大的套件裡,是最容易被漏掉的依賴。

這次最值得學的是「IP 綁定寫反」:防護功能啟用了卻產生相反效果,只看設定頁面是發現不了的。自己寫權限相關程式時,一定要寫「該擋的真的被擋」的測試,而不是只測「合法請求能過」。

名詞小辭典

  • OAuth2:讓一個服務在不洩漏密碼的情況下,授權另一個服務存取你的資料的通用流程。
  • JWT:一種帶有簽章的令牌格式,裡面的 aud 欄位標明這張令牌是發給哪個服務用的。
  • XXE:XML 解析器被誘導去讀取外部資源,可能洩漏檔案或發出內部請求。
  • JNDI 注入:利用 Java 的名稱查找機制,讓程式載入並執行攻擊者指定的內容。

資料來源

常見問題

Apache CXF 是什麼?
Java 世界常用的網路服務框架,用來建立與呼叫 REST、SOAP 等服務,也包含 OAuth2、JMS 等模組。
CVE-2026-50628 的「寫反」是什麼意思?
OAuth2 有個功能可以把令牌綁在特定 IP。官方說明該檢查的邏輯錯誤,會拒絕從綁定 IP 來的合法請求,卻直接放行其他 IP,等於開啟這個功能反而變成反向的防護。
每個漏洞都要升級嗎?
各漏洞影響的模組不同:OAuth2 的兩個在 cxf-rt-rs-security-oauth2,XXE 在 cxf-core,JNDI 注入分別在 JMS 與 JCA 模組。沒用到那些模組的風險較低,但最簡單的做法還是直接升到修補版。
LINE