威脅情報

CVE-2026-102895 — GPUStack 讓未認證攻擊者冒充管理員:解析與對策(CVSS 9.8,已在 2.2.0 修復,已被利用)

CVE-2026-102895 讓未認證攻擊者可冒充管理員(pip gpustack 2.2.0 之前,CVSS 9.8)。已報告在野利用,並已列入 CISA KEV。已在 2.2.0 修復。

發布於 2026-11-10 更新於 2026-11-10 最後核實 2026-11-10 閱讀時間 3 分鐘
本頁內容

這是一篇針對 GPUStack(在 GPU 叢集上執行 AI 模型並配置 GPU 例項的開源管理器)中漏洞的解析:未認證的一方可以冒充管理員。本文以防禦視角,說明發生什麼、誰受影響以及如何因應,不涉及攻擊步驟。

公告摘要
CVE
CVE-2026-102895(GitHub 公告 GHSA-gj9m-f8ph-pmhr)
嚴重度
CVSS v3.1 9.8(Critical)。公告、CVE 記錄和 NVD 的數值相同
類型
認證不當(CWE-287)。公告還列出了透過欺騙繞過認證(CWE-290)和來源驗證錯誤(CWE-346)
前提條件
無需認證;能透過網路到達 GPUStack 即可。據公告,預設設定即受影響
受影響版本
pip gpustack 2.2.0 之前
修復
gpustack 2.2.0
日期
公告:2026年7月31日 / CVE 記錄:2026年11月4日
利用情況
公告報告了在野利用。2026年11月9日列入 CISA KEV(期限11月12日)
9.8
CVSS v3.1
無需認證
攻擊者所需條件
2.2.0
修復版本
11月12日
KEV 期限

放任不管的風險

據公告,未認證的一方可以更改使用者、模型和 worker 設定,並建立可從任何來源地址使用的管理員 API 金鑰。worker 和雲服務商的憑證可被讀取,與僅限管理員的功能結合,會導致 worker 主機上的程式碼執行。公告稱已觀察到在野利用。CISA 對這一 KEV 條目標註需要鑑識分診。

這是什麼樣的漏洞

在預設設定下(force_auth_localhost 為 false),GPUStack 會把來自同一臺機器(loopback)的請求當作內建管理員。這本是為了在本地使用時省去認證的麻煩。問題在於,判斷「是不是同一臺機器」的依據可以被外部影響。

據公告,有兩條無需認證就能成為管理員的路徑。第一條是同一主機上的反向代理:一旦代理轉發到 GPUStack,即使是外部請求,在 GPUStack 看來也來自 loopback。這是常見的自行代管配置,不需要任何請求標頭或憑證。第二條是請求轉送標頭;公告稱,客戶端提供的值可以讓請求看起來像來自 loopback。本站不描述如何利用。

修復前(2.2.0 之前)

  • loopback 來源無需認證即成為管理員
  • 在同一主機的反向代理之後,外部流量看起來像 loopback
  • 轉送標頭可以偽造來源

2.2.0 中的變化

  • 移除了把 loopback 當作管理員的路徑
  • 加強了對客戶端 IP 和轉送標頭的處理
  • 只接受來自已認證的可信閘道器的真實客戶端 IP 標頭

影響範圍

專案內容
產品GPUStack(開源 GPU 叢集管理器)
受影響的軟體套件pip gpustack
受影響版本2.2.0 之前(公告和 CVE 記錄)
修復版本2.2.0
現實中的危害公告:已觀察到針對 v2.1.1 的在野利用
可能發生的事所有管理員操作(更改使用者、模型、worker)、建立管理員 API 金鑰、讀取 worker 和雲服務商憑證、worker 上的程式碼執行(據公告和 KEV)
  • 據公告,預設設定即受影響。
  • 公告只列出了 pip 軟體套件 gpustack。如果您以其他方式安裝(例如容器映像檔),請向供應商確認版本資訊。

如何確認自己是否受影響

1

確認 GPUStack 的版本

查看已安裝的 gpustack 版本。2.2.0 之前的版本受影響。如果有生產、預發布和開發環境,請逐一檢查(資產清點清單)。

2

確認外部能否到達

確認 GPUStack 的埠或其前面的反向代理,能否從網際網路等不可信範圍到達。據公告,這個缺陷可以透過同一主機的反向代理起作用,所以位於代理之後並不能說明安全。

3

檢查 force_auth_localhost 設定

確認 force_auth_localhost 是否為 true。據公告,預設值為 false,這會使存在漏洞的路徑保持開放。

今天該做什麼

1

更新到 2.2.0(最優先)

把 gpustack 更新到 2.2.0 或更高版本。KEV 期限為2026年11月12日。

2

在此之前,收窄入口

公告列出的臨時辦法如下,它們都不能代替更新。

  • 把 force_auth_localhost 設為 true,使 loopback 請求也需要認證。
  • 確保反向代理或閘道器不會讓外部流量看起來像 loopback,並在邊緣剝離客戶端提供的 X-GPUStack-Real-IP 標頭。
  • 讓 API 遠離不可信網路,置於 VPN 或邊緣認證之後。
3

更新後,審計管理員 API 金鑰

據公告,建立出來的管理員 API 金鑰此後可以從任何來源地址使用。更新不會移除它,所以請列出現有的 API 金鑰,並刪除建立者或建立時間您不認識的金鑰。尤其要查看更新之前建立的金鑰。

4

撤銷並重新簽發憑證

公告稱 worker 憑證和雲服務商的金鑰可能被讀取。請撤銷並重新簽發您在 GPUStack 中登記的內容:worker 連線資訊、雲服務商金鑰、模型下載權杖等。作為本站的補充建議,即使沒有發現被濫用的痕跡也請重新簽發。請參閱漏洞修復實務手冊和安全基礎:.env 與 API 金鑰。

5

檢查設定和 worker

檢查不熟悉的自定義後端、使用者和模型設定。在 worker 上,檢查不熟悉的程序和對外連線。由於已確認存在利用,請把任何不熟悉的配置都視為可能的入侵跡象。如果發現可疑之處,請隔離該 worker,並考慮重建。

利用情況

  • 公告稱,已觀察到針對 v2.1.1 部署的在野利用。該利用歸功於一位第三方報告者。
  • CISA 於2026年11月9日把它列入 KEV(已確認存在利用的漏洞目錄;版本 2026.11.09),期限為11月12日。勒索軟體活動中的使用情況列為未知,鑑識分診列為需要。
  • NVD 記錄的狀態為 Analyzed。CVSS v3.1 為 9.8,與公告和 CVE 記錄相同。
  • 公告記載了數位獨立報告這一漏洞的報告者。

本站的觀點:不要因為是內部網路或在代理之後,就不做認證

這與其說是編碼上的失誤,不如說是設計假設有缺陷。「來自本機的請求就是我」這種想法,在前面放上反向代理的瞬間就崩潰了。同一主機上的反向代理,還是新增 HTTPS 和對外發布服務時被廣泛使用的方式,所以讓人覺得受到保護的部署,反而成了入口。

AI 平臺的管理控制檯把模型執行時、GPU 資源和雲端憑證集中在一處。如果它接受未認證的請求,損害就不會止於一臺機器,而會透過雲端憑證向外擴散。請用認證來保護管理控制檯和管理 API,而不是靠位置或來源地址。設計上信任轉送標頭時,也會出現同類問題(XFF 偽造與可信代理)。更新之後,只有清理了已建立的 API 金鑰和可能被讀取的憑證,工作才算完成。

資訊來源

最後確認:2026年11月10日。

延伸閱讀

FAQ

QCVE-2026-102895 是什麼?
A

這是 GPUStack 中的漏洞,GPUStack 是在 GPU 叢集上執行 AI 模型的管理器。據公告,在預設設定下,來源看起來是同一臺機器(loopback)的請求會被當作內建管理員。在同一主機的反向代理之後,外部請求看起來也是這樣,所以未認證的一方可以執行管理員操作。CVSS v3.1 評分為 9.8。

Q哪些版本受影響,修復版本是什麼?
A

pip 軟體套件 gpustack 2.2.0 之前的版本。修復版本是 2.2.0;據公告,它移除了把 loopback 來源當作管理員的路徑,並加強了對客戶端 IP 和轉送標頭的處理。公告只把 pip 軟體套件 gpustack 列為受影響對象。如果您以其他方式安裝(例如容器映像檔),請向供應商確認版本資訊。

Q有沒有被利用?
A

有。公告稱,已觀察到針對 v2.1.1 部署的在野利用。CISA 於2026年11月9日把它列入 KEV,期限為11月12日。KEV 將勒索軟體活動中的使用情況列為未知。

Q暫時無法更新,有臨時辦法嗎?
A

公告列出三項。把 force_auth_localhost 設為 true,使 loopback 請求也需要認證。確保反向代理或閘道器不會讓外部流量看起來像 loopback,並在邊緣剝離客戶端提供的 X-GPUStack-Real-IP 標頭。讓 API 遠離不可信網路,置於 VPN 或邊緣認證之後。這些都不能代替更新。

Q只更新就夠了嗎?
A

不夠。已列出的影響包括建立管理員 API 金鑰,以及讀取 worker 和雲服務商的憑證。據公告,建立出來的 API 金鑰此後可以從任何來源地址使用。更新不會移除它們,所以請審計 API 金鑰,並撤銷、重新簽發憑證。

Q放在代理後面就安全嗎?
A

不安全。代理的部署方式本身就是觸發條件。據公告,在同一主機的反向代理之後,外部請求會顯示為來自 loopback。不要因為是內部網路或在代理之後,就讓管理控制檯或管理 API 不經認證。