Tomcat 一日曝 9 個 CVE,DIGEST 重放、角色別名繞過齊發;Trail of Bits:VM 難擋具攻擊能力 AI 代理逃逸
oss-security.openwall.org · 2026-08-26
Apache Tomcat 專案於 2026 年 8 月 26 日透過 oss-security 郵件論壇,一次公開九個 CVE,橫跨權限繞過、競爭條件與阻斷服務等機制,官方已在同日釋出的 11.0.25、10.1.58 與 9.0.121 版本中修復。同一天,資安研究公司 Trail of Bits 發布報告,指出以 QEMU/KVM 虛擬機作為「具攻擊能力 AI 代理」(cyber-capable agent)的圍堵手段並不可靠。GitHub 資安公告也在當天更新了 PyPI 套件 pantheon-agents 遭植入竊資木馬事件的細節。
漏洞機制
九個 CVE 中,多數屬於權限與存取控制繞過:CVE-2026-65182 起因於較長路徑的限制設定寫在較短子路徑限制之前,導致安全限制被跳過;CVE-2026-65927 是 RewriteValve 的差一錯誤,讓 [N] 旗標從第二條規則重新比對而非第一條;CVE-2026-66422 是 Realm 中把 security-role-ref 誤當成角色別名使用;CVE-2026-68525 讓 FORM 認證下原本僅限 POST 的資源限制可被 GET 繞過;CVE-2026-68569 則使 CLIENT-CERT、SPNEGO 等情境下即使使用者不存在於 DataSourceRealm 也能通過驗證。
另外三種機制各自獨立:CVE-2026-65183 是建立 Unix domain socket 時的 TOCTOU(Time-of-check Time-of-use)競爭條件,可讓未授權的本機使用者存取該 socket;CVE-2026-65905 出在 DIGEST 認證器,當請求的 nonceCount 落在重放視窗上邊界時,該請求可被重放一次,屬於有限次數的重放攻擊;CVE-2026-65637 則是 HTTP/2 的「no-authority」請求可繞過嚴格 SNI 驗證,官方指出這是先前 CVE-2026-32990 修補不完整所致;CVE-2026-68763 是 HTTP/2 backlog 追蹤機制在串流被重置時發生記憶體洩漏,可被用於阻斷服務。
受影響版本
受影響範圍集中在 Tomcat 11.0.0-M1 至 11.0.24、10.1.0-M1 至 10.1.57、9.0.x 部分區間,各 CVE 的 9.0 起始版本略有不同(如 CVE-2026-65183 自 9.0.42、CVE-2026-66422 自 9.0.25、CVE-2026-68763 自 9.0.39 起)。多數 CVE 也影響已停止維護的 8.5.0-8.5.100 與 7.0.x 分支,但 65183、66422、68763 對 7.0.x 的影響範圍較窄或不受影響。九個 CVE 的嚴重度從 Low 到 Important 不等。
修補與緩解
九個 CVE 全數在同一組版本修復:Tomcat 11.0.25、10.1.58 與 9.0.121。由於 8.5.x 與 7.0.x 分支已進入 EOL,官方不會釋出對應修補,仍在使用這些分支的部署需自行評估升級或緩解。
CVE-2026-65182:較長路徑限制寫在較短子路徑限制之前,導致安全限制被繞過。CVE-2026-65183:建立 Unix domain socket 時發生 TOCTOU 競爭條件,允許未授權本機使用者存取。CVE-2026-65637:HTTP/2 no-authority 請求繞過 SNI 驗證,為 CVE-2026-32990 的不完整修補。CVE-2026-65905:DIGEST 認證中 nonceCount 落在重放視窗邊界時可被重放一次。CVE-2026-65927:RewriteValve 的 [N] 旗標因差一錯誤從第二條規則重新比對。CVE-2026-66422:Realm 誤將 security-role-ref 當作角色別名,致存取控制被繞過。CVE-2026-68525:FORM 認證下僅限 POST 的資源限制可被 GET 請求繞過。CVE-2026-68569:CLIENT-CERT、SPNEGO 等情境下使用者不存在於 DataSourceRealm 仍可通過驗證。CVE-2026-68763:HTTP/2 backlog 追蹤在串流重置時記憶體洩漏,可致阻斷服務。
| CVE | 機制類型 | 嚴重度 |
|---|---|---|
| CVE-2026-65182 | 存取控制繞過 | Important |
| CVE-2026-65183 | TOCTOU 競爭條件 | Low |
| CVE-2026-65637 | SNI 驗證繞過 | Moderate |
| CVE-2026-65905 | 認證重放 | Low |
| CVE-2026-65927 | 存取控制繞過 | Important |
| CVE-2026-66422 | 授權繞過 | Low |
| CVE-2026-68525 | 授權繞過 | Low |
| CVE-2026-68569 | 認證繞過 | Important |
| CVE-2026-68763 | 資源耗盡(DoS) | Important |
背景
Trail of Bits 在與 OpenAI 合作的 Patch the Planet 計畫中,測試讓一套具攻擊能力的 AI 代理(cyber-capable agent,文中以 GPT 5.6-Cyber 為例)嘗試逃逸執行於 Debian 12 主機上的 QEMU/KVM 虛擬機。測試前提假設是:若代理需要合法存取開發工具、網路與除錯功能,VM 沙箱應足以安全圍堵它。
核心論點
Trail of Bits 認為 VM 的攻擊面過於龐大:即使是網路、檔案傳輸、顯示輸出等「無害功能」,也會成為逃逸路徑的來源。文中指出三個關鍵因素——VM 與主機之間必須共享資源、像 Debian 12 這類舊版釋出(oldstable)的安全更新落後、以及代理具備自行合成新漏洞的能力。該代理最終串連 QEMU、Linux KVM 與 libslirp 中的多個 0-day 漏洞,成功達成穩定的虛擬機逃逸。
Trail of Bits 建議的緩解方向包括改用Firecracker microVM、加快發行版更新速度、採最小權限原則、加強監控,以及限制代理的持續運作時間。
漏洞機制
GitHub 資安公告 GHSA-93qj-5q5v-3c2h(原始發布於 2026 年 6 月 15 日,8 月 26 日更新內容)指出,PyPI 套件 pantheon-agents 的維護者帳號因API token 遭竊而被入侵,攻擊者藉此直接上傳惡意版本到 PyPI,未經過 GitHub 原始碼儲存庫。惡意版本內建的 setup 腳本會在 Python 啟動時執行,下載 Bun JavaScript 執行環境並運行一支經過混淆的竊資程式,蒐集環境變數、API 金鑰、SSH 金鑰與雲端憑證。
受影響版本
受影響版本僅限 PyPI 上的0.6.1 與 0.6.2兩個版本;GitHub 儲存庫本身與其他發布通路未受影響。
修補與緩解
官方已釋出 0.6.4 修復版本,並建議使用者立即解除安裝 0.6.1、0.6.2,檢查主機上是否出現異常的 *-setup.pth 檔案、_index.js 或家目錄下的 Bun 執行環境等入侵指標。凡曾安裝過受影響版本的機器,都應輪替所有可能外洩的憑證,並在 PyPI 恢復正常發布前,改從乾淨的 GitHub 原始碼安裝。
原始來源:oss-security: CVE-2026-65182、oss-security: CVE-2026-65183、oss-security: CVE-2026-65637、oss-security: CVE-2026-65905、oss-security: CVE-2026-65927、oss-security: CVE-2026-66422、oss-security: CVE-2026-68525、oss-security: CVE-2026-68569、oss-security: CVE-2026-68763、Trail of Bits、GHSA-93qj-5q5v-3c2h