// 威脅簡報
LMCache /run_script 未認證遠端程式碼執行:任何連得到管理埠的人都能執行 Python
- CVSS
- 9.8 CRITICAL
- CISA KEV
- 未列入
- 弱點類型
- CWE-306
AI 審稿 2026-10-12(未經人工)指令測試:未提供漏洞重現:未進行驗證紀錄 ↓
LMCache 0.5.5 以前(含)的 /run_script 管理端點不檢查呼叫者,會直接執行送來的 Python 腳本;目前沒有正式修補版本,預發布版 0.5.6rc2、0.5.6rc3 改為預設關閉這個端點(仍沒有認證)。
| 誰會中 | 使用 PyPI 套件 lmcache 0.5.5 以前(含)版本,且管理用 HTTP 埠可從其他機器連到的部署。依 v0.5.5 原始碼,獨立的 lmcache server HTTP 前端預設綁定 0.0.0.0、埠 8080,並一定提供 /run_script;嵌在 vLLM 裡的內部 API 伺服器預設關閉,手動開啟後綁定 0.0.0.0、埠從 6999 起。尚未確認:issue #5510(該頁含攻擊程式,本站不連結)的 PoC 環境另外安裝了 python-multipart,而 lmcache 0.5.5 在 PyPI 的相依套件清單(requires_dist)沒有它,所以預設安裝是否一定能被利用尚未確認。PlainCVE 提醒:PR #5129 作者指出同一台主機上的 lmcache_frontend 預設綁 0.0.0.0、沒有認證,管理 API 可能照樣被遠端碰到。 |
|---|---|
| 後果 | 攻擊者可以在 LMCache 程序裡執行 Python 程式碼,繞過匯入限制後執行作業系統指令,權限與伺服器相同;回報者指出在 GPU 推論主機上通常是 root,也可能讀到雲端憑證、HF token 等環境變數。 |
| 現在該做什麼 | 目前沒有正式修補版本,也沒有 LMCache 安全公告,以下是 PlainCVE 的建議:先確認管理埠(獨立 lmcache server 預設 8080;內部 API 伺服器從 6999 起)沒有對外開放;用防火牆限制外部連線(第三方資安新聞網站的建議,不是官方公告),並把管理伺服器綁定到 127.0.0.1(issue #5128 的建議,PR #5129 也改成這個預設值)。PlainCVE 提醒:只綁 127.0.0.1 不夠,PR #5129 作者指出同一台主機上的 lmcache_frontend 預設綁 0.0.0.0、沒有認證,管理 API 仍可能透過它被連到,也要檢查 frontend。強化修改 PR #5129 已於 2026-09-23 合併,包含在預發布版 0.5.6rc2、0.5.6rc3;它只是預設關閉 /run_script,不是加上認證;手動開啟 run_script_api_enabled 且管理埠可被其他機器連到時,仍可被遠端執行程式碼。 |
| 受影響版本 | 0.5.5 以前(含)的所有版本 |
| 修好的版本 | 尚無正式修補版本(截至 2026-10-07);預發布版 0.5.6rc2、0.5.6rc3 預設關閉 /run_script,但未加上認證 |
| CVSS 向量 | 顯示完整向量CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H |
| 時間點 |
|
藍隊應對手冊
確認、修補 / 緩解、應變、強化。版本符合受影響條件不等於已被入侵;檢查沒有結果也不等於安全,每一項都有能證明與不能證明的範圍。標記的步驟對應下方攻擊流程裡可以擋下攻擊的那一步。
- 01確認版本
lmcache 0.5.5 以前(含)都在 CVE 紀錄的受影響範圍內。在哪裡執行:在執行 LMCache 的主機上,而且要在 LMCache 所在的 Python 虛擬環境或容器內(例如先啟用該 venv,或用 docker exec 進入容器)。在別的 Python 環境執行會查不到或查到錯的版本,查不到不代表沒有安裝。
唯讀查詢pip show lmcache | grep -i '^version' - 02確認管理埠是否對外監聽
依 v0.5.5 原始碼,獨立的 lmcache server HTTP 前端預設綁定 0.0.0.0:8080;內部 API 伺服器開啟後綁定 0.0.0.0,埠號從 6999 起(可能往上延伸到 7000 以上)。這條唯讀指令列出這些埠的監聽狀態;若你自訂過埠號,請改成你的設定,或改用 lmcache 程序名稱篩選(-p 顯示程序資訊可能需要 root)。若監聽位址是 0.0.0.0 而非 127.0.0.1,代表其他機器可能連得到。在哪裡執行:在執行 LMCache 的主機上;容器部署要在該容器或它所用的網路命名空間裡執行(例如 docker exec 進入容器,或在宿主機用 nsenter 進入該容器的網路命名空間)。這條指令沒有涵蓋 lmcache_frontend:PR #5129 作者指出 frontend 預設也綁 0.0.0.0、沒有認證,我們沒有找到來源說明它的預設埠,請依你的啟動參數另外檢查它的監聽埠。
唯讀查詢ss -tlnp | grep -E ':(8080|69[0-9]{2}|7[0-9]{3})[[:space:]]' - 03搜尋對 /run_script 的請求紀錄
資安新聞網站建議檢查紀錄中是否有未經認證、送往 /run_script 的 POST 請求。若你從未使用這個功能,任何這類請求都值得調查。注意:我們沒有找到來源說明 LMCache 預設會不會寫出 HTTP 存取紀錄、紀錄放在哪裡或格式為何;下面的資料夾路徑只是佔位符,請改成你的部署實際存放紀錄的資料夾(例如反向代理或 uvicorn 的紀錄),查不到不代表沒有發生。在哪裡執行:在保存 LMCache 或其前面反向代理紀錄的主機上執行(集中收集紀錄的話,在紀錄伺服器上執行)。這條 PlainCVE 寫法只讀取檔案,-r 會搜尋子資料夾;輪替後壓縮的 .gz 紀錄 grep 讀不到,請另外用 zgrep 搜尋。
唯讀查詢grep -rn 'POST /run_script' /path/to/logs/
- 01封鎖外部對 LMCache 的存取
在正式修補版本出現前,資安新聞網站建議用防火牆規則或存取控制清單(ACL)限制外部直接連到 LMCache。這是第三方建議,不是官方公告。
- 02把管理伺服器綁定到本機
Issue #5128 建議把 internal_api_server_host 與 --http-host 設為 127.0.0.1;PR #5129 也把預設值改成這樣(0.5.6rc2、0.5.6rc3 的原始碼已是 127.0.0.1)。注意:維持 internal_api_server_enabled 為 false 只關得掉內部 API 伺服器;獨立的 lmcache server 在 0.5.5 不論這個設定都會提供 /run_script,必須另外設定 --http-host。PlainCVE 提醒:只綁 127.0.0.1 不夠。PR #5129 作者指出,同一台主機上的 lmcache_frontend 預設綁 0.0.0.0、沒有認證,管理 API 仍可能透過它被遠端連到;請一併檢查 frontend 的綁定位址,或不要讓它對外開放。
- 03了解 PR #5129 的狀態
PR #5129 已於 2026-09-23 由 LMCache 協作者合併進 dev 分支(commit 449b94c),預發布版 0.5.6rc2、0.5.6rc3 的原始碼已包含:/run_script 預設回傳 404,管理伺服器預設綁定 127.0.0.1。PyPI 最新正式版仍是 0.5.5,LMCache 也沒有發安全公告。這個修改是預設關閉,不是加上認證:依 0.5.6rc2、0.5.6rc3 原始碼,沒有開啟 run_script_api_enabled 時 /run_script 一律回傳 404,只改綁非本機位址不會讓它執行程式碼;但若開啟 run_script_api_enabled,且管理埠可被其他機器連到,端點仍不檢查呼叫者、可被遠端執行程式碼。
- 01把主機當成可能已被入侵
若管理埠曾對外開放,且紀錄裡有不明的 /run_script 請求,攻擊者可能已用伺服器權限執行指令。這是 PlainCVE 的建議:隔離主機並調查。
- 02輪替程序環境裡的憑證
回報者指出可讀到雲端憑證、HF token 等環境變數。確認有可疑存取時,PlainCVE 建議輪替這些憑證。這是預防性建議,不代表已確認外洩。
完整修復步驟與說明
目前沒有正式修補版本(PyPI 最新正式版為 0.5.5),我們檢視的資料中也未見 LMCache 安全公告。以下按順序處理:
- 先確認曝險:
pip show lmcache看版本;ss -tlnp看管理埠是綁 0.0.0.0 還是 127.0.0.1。獨立的lmcache server預設埠是 8080,內部 API 伺服器開啟後埠從 6999 起;自訂過埠號的請以你的設定為準。 - 再縮小曝險:把
internal_api_server_host與--http-host設為 127.0.0.1,並在主機或雲端防火牆擋掉外部連線。只把internal_api_server_enabled維持 false 擋不住獨立的lmcache server。PlainCVE 提醒:只綁 127.0.0.1 不夠。PR #5129 作者指出,同一台主機上的lmcache_frontend預設綁 0.0.0.0、沒有認證,管理 API 仍可能透過它被連到,所以也要檢查 frontend 的綁定位址與防火牆。 - 了解強化修改的狀態:PR #5129 新增
run_script_api_enabled(環境變數LMCACHE_RUN_SCRIPT_API_ENABLED),預設 false,並把兩個管理伺服器的預設綁定改成 127.0.0.1。它已於 2026-09-23 合併進 dev 分支(commit 449b94c),預發布版 0.5.6rc2(2026-09-28)、0.5.6rc3(2026-10-06)的原始碼已包含。這是預設關閉,不是加上認證:依 0.5.6rc2、0.5.6rc3 原始碼,沒有開啟run_script_api_enabled時/run_script一律回傳 404,只改綁非本機位址不會讓它執行程式碼;但如果你開啟run_script_api_enabled,且管理埠可被其他機器連到,/run_script仍然不檢查呼叫者、可被遠端執行程式碼。是否安裝預發布版由你自行判斷;正式版釋出前,上面兩步仍然需要。
攻擊流程
從左到右是攻擊發生的順序。藍色盾牌代表這一步可以被擋下,越早擋下越好。點圖示可看細節。
由上到下是攻擊發生的順序。藍色盾牌代表這一步可以被擋下,越早擋下越好。點圖示可看細節。
- 攻擊者
找到可連線的 LMCache 管理埠
依 v0.5.5 原始碼,獨立的 lmcache server HTTP 前端預設綁定 0.0.0.0(所有網路介面)、埠 8080;嵌在 vLLM 裡的內部 API 伺服器預設關閉,手動開啟後綁定 0.0.0.0、埠從 6999 起。攻擊者都需要能從網路連到管理埠。
防禦: 用防火牆或存取控制清單擋掉外部連線,並把管理伺服器綁定到 127.0.0.1;依 PR #5129 作者的提醒,也要檢查同一台主機上的 lmcache_frontend(預設綁 0.0.0.0、沒有認證)。
- 攻擊者
不需登入,把腳本送到 /run_script
這個端點不檢查呼叫者是誰,也不需要任何使用者操作。
防禦: PR #5129(已合併,包含在預發布版 0.5.6rc2、0.5.6rc3)新增 run_script_api_enabled 設定,預設關閉時 /run_script 回傳 404;這不是認證,手動開啟後端點仍不檢查呼叫者。
- 你的系統
LMCache 直接執行上傳的腳本
0.5.5 的原始碼用 exec() 執行腳本,並把正在運作的 FastAPI app 物件放進腳本可用的變數裡。
防禦: 不需要這個功能就不要啟用;它本質上就是遠端執行程式碼。
- 你的系統
匯入限制被繞過
受限的 __import__ 可被繞過,讓攻擊者匯入 os 模組(依 CVE 紀錄)。
防禦: 受限內建函式不是沙箱,不能當成防護手段。
- 攻擊者
以 LMCache 程序的身分執行系統指令
權限與伺服器相同,回報者指出在 GPU 推論主機上通常是 root;也可能讀到雲端憑證、HF token 等環境變數。
防禦: 不要用 root 執行服務,程序環境只放必要的憑證。
影響範圍
| 條件 | 是否受影響 |
|---|---|
lmcache 0.5.5 以前(含),啟用了內部 API 伺服器(internal_api_server_enabled),且管理埠可從其他機器連到 | 受影響 |
lmcache 0.5.5 以前(含),執行獨立的 lmcache server HTTP 前端,且管理埠可連到 | 在 CVE 紀錄的受影響版本範圍內;依 v0.5.5 原始碼,預設設定就綁定 0.0.0.0:8080 並掛上 /run_script 路由。但 #5510(該頁含攻擊程式,本站不連結)的 PoC 環境另外安裝了 python-multipart,lmcache 0.5.5 的 requires_dist 沒有它,所以只用預設安裝是否一定能被利用尚未確認 |
| 管理埠只綁定 127.0.0.1、外部連不到 | 遠端攻擊者需要能連到管理埠才能利用;但 PR #5129 作者指出同一台主機上的 lmcache_frontend 預設綁 0.0.0.0、沒有認證,管理 API 可能透過它被連到,也要檢查 frontend(PlainCVE 提醒)。仍建議在正式修補版本出現後升級 |
| 預發布版 0.5.6rc2、0.5.6rc3 | 原始碼已預設關閉 /run_script(回傳 404),管理伺服器預設綁定 127.0.0.1;但沒有加上認證,手動開啟 run_script_api_enabled 且管理埠可被其他機器連到時,仍可被遠端執行程式碼。CVE 紀錄的受影響範圍只列到 0.5.5,是否算修補沒有官方說明 |
| 正式修補版本 | 目前沒有(PyPI 最新正式版為 0.5.5) |
預設是否就曝險?看你怎麼啟動。 兩份回報講的是不同的啟動方式,依 v0.5.5 原始碼:
- 獨立的
lmcache server:HTTP 前端的http_host預設0.0.0.0、http_port預設 8080(multiprocess/config.py),而且它會自動掛上所有內部 API 路由(_MP_INCOMPATIBLE_MODULES是空集合),所以/run_script一定存在。預設的獨立部署就會在所有網路介面提供這個端點(與 issue #5128 的說法一致)。不過 #5510(該頁含攻擊程式,本站不連結)的 PoC 環境另外安裝了 python-multipart,而 PyPI 上 lmcache 0.5.5 的 requires_dist 沒有它;只用預設安裝時是否一定能被利用,尚未確認。 - 嵌在 vLLM 裡的內部 API 伺服器:
internal_api_server_enabled預設False,需要手動開啟;開啟後internal_api_server_host預設0.0.0.0,埠從 6999 起(config.py;與 issue #5510 的說法一致,該頁含攻擊程式,本站不連結)。
原理
LMCache 有一個管理用的 HTTP 端點(endpoint,可被呼叫的網址路徑)/run_script,用途就是接收一段 Python 腳本並執行。問題有兩層:
- 沒有認證。 CVE 紀錄把它歸類為 CWE-306(關鍵功能缺少認證):端點不檢查呼叫者是誰。PlainCVE 閱讀 v0.5.5 的原始碼後,也沒有看到處理函式裡有認證檢查(這是本站的判斷,不是來源原話)。
- 限制擋不住。 程式用
exec()執行腳本,並限制可用的內建函式(builtins,Python 預設提供的函式,例如匯入模組用的__import__)。但它同時把正在運作的 FastAPI app 物件放進腳本的變數裡。CVE 紀錄指出,受限的__import__可被繞過,進而匯入os並以 LMCache 程序的身分執行作業系統指令。依 #5128,專案文件本身就提醒受限內建函式不是沙箱,應把這個端點視同完整的遠端程式碼執行。
回報者指出,程式碼以伺服器的權限執行,在 GPU 推論主機上通常是 root;也可能讀到程序的環境變數(例如雲端憑證、HF token)。
有問題的思路(概念示意,不是原始程式碼):
展開程式碼範例(python)
# 任何人都能呼叫,而且服務監聽所有網路介面
@app.post("/run_script")
def run_script(request, script):
exec(script, {"__builtins__": limited, "app": request.app})PR #5129 的思路(已合併,包含在 0.5.6rc2、0.5.6rc3;這是預設關閉,不是認證):
展開程式碼範例(python)
# 預設關閉;管理伺服器預設只監聽本機
if not settings.run_script_api_enabled: # 預設 False
return 404
# host 預設為 127.0.0.1時間軸
| 日期 | 事件 |
|---|---|
| 2026-09-15 | 首次公開:issue #5128 在 LMCache 的 issue tracker 公開回報同一個問題(/run_script 未認證、用 exec() 執行上傳腳本、注入的 FastAPI app 物件讓受限 builtins 失效);同日開立 PR #5129,註明「Fixes #5128」。CVE 紀錄沒有引用 #5128 |
| 2026-09-23 | PR #5129(預設關閉 /run_script、管理伺服器預設綁 127.0.0.1)合併進 dev 分支 |
| 2026-09-28 | 預發布版 v0.5.6rc2 發布,原始碼已包含上述預設關閉 |
| 2026-10-06 | 研究者開立 issue #5510(該頁含攻擊程式,本站不連結),並在 lmcache 0.5.5 上實際確認;CNA 記載的公開日期(datePublic);預發布版 v0.5.6rc3 發布 |
| 2026-10-07 | VulnCheck 發布 CVE 紀錄;NVD 已收到但尚未分析;未列入 CISA KEV |
延伸閱讀
- 評分差異:CNA(VulnCheck)給 CVSS 3.1 9.8 分、CVSS 4.0 9.3 分,都屬「嚴重」;只是評分標準版本不同。NVD 尚未給出自己的分數。
- CWE 分類:CNA 歸為 CWE-306(缺少認證);研究者的 issue #5510(該頁含攻擊程式,本站不連結)建議 CWE-94(程式碼注入)。這是同一個問題的不同分類角度,不是事實上的矛盾。
- 概念驗證(PoC):已有公開 PoC。回報 issue #5510(該頁含攻擊程式,本站不連結)附有 PoC;CVE 紀錄中 CISA ADP 把該 issue 標為 exploit,SSVC 把利用狀態評為「poc」,另評為「可自動化」且技術影響為「完全」。(一個自動化新聞網站寫「No Public PoC Indexed」,指的是它監看的研究資源庫裡沒有獨立的利用程式,不影響上述事實。)
- 遭利用狀況:未列入 KEV,也沒有資料顯示已遭實際利用或曾是零時差攻擊。
- 別混淆:The Hacker News 的相關報導主要談的是另一個 LMCache 漏洞 CVE-2026-105192(ZeroMQ/pickle),其內容不應套用到本 CVE。
- 發現者:Mingkai Yu、Jiajia Liu(依 VulnCheck 公告)。
驗證紀錄 AI 依審稿規則逐項核對來源,全部通過;未經人工審稿,也尚未在我們的環境重現
| AI 審稿 | 2026-10-12 · 審稿規則 |
|---|
驗證紀錄只寫環境與結果,不公開重現步驟或可攻擊他人系統的程式。詳見 政策.
來源
- CVE / NVD / OSVCVE-2026-107204 record (CVE Services API) · CVE Program / VulnCheck (CNA), 2026-10-07 · 查閱 2026-10-07
- CVE / NVD / OSVNVD API - CVE-2026-107204 · NIST · 查閱 2026-10-07
- 安全公告LMCache through 0.5.5 Unauthenticated RCE via /run_script Endpoint · VulnCheck · 查閱 2026-10-07
- 研究文章LMCache issue #5128 · 回報者 apejcic(第三方回報,發在 LMCache GitHub issue), 2026-09-15 · 查閱 2026-10-07
- 修補 commit / 版本LMCache PR #5129: disable /run_script by default and bind admin HTTP to 127.0.0.1(2026-09-23 合併,commit 449b94c) · LMCache (GitHub), 2026-09-23 · 查閱 2026-10-08
- 修補 commit / 版本run_script_api.py at v0.5.6rc3(預發布版) · LMCache (GitHub) · 查閱 2026-10-08
- 修補 commit / 版本run_script_api.py at v0.5.6rc2(預發布版) · LMCache (GitHub) · 查閱 2026-10-08
- 廠商說明LMCache releases · LMCache (GitHub) · 查閱 2026-10-08
- 廠商說明multiprocess/config.py at v0.5.5(獨立 server 預設 http_host、http_port) · LMCache (GitHub) · 查閱 2026-10-08
- 廠商說明config.py at v0.5.5(內部 API 伺服器預設值) · LMCache (GitHub) · 查閱 2026-10-08
- 廠商說明multiprocess/http_apis/common_api.py at v0.5.5 · LMCache (GitHub) · 查閱 2026-10-08
- 廠商說明lmcache on PyPI (JSON API) · PyPI · 查閱 2026-10-08
- 廠商說明run_script_api.py at v0.5.5 · LMCache (GitHub) · 查閱 2026-10-07
- 其他CVE-2026-107204 LMCache through 0.5.5 unauthenticated RCE · HOL Guard · 查閱 2026-10-07
- 新聞報導CVE-2026-107204: Critical LMCache RCE exposes systems to unauthenticated Python code execution · TheHackerWire · 查閱 2026-10-07
- 新聞報導Unpatched critical LMCache flaw (CVE-2026-105192) · The Hacker News · 查閱 2026-10-07
媒體簡報
一句話
LMCache 是一個 Python 套件,0.5.5 以前(含)的版本有一個管理端點 /run_script,會直接執行任何人送來的 Python 腳本,不檢查身分。負責發布 CVE 的 VulnCheck 給它 CVSS 3.1 9.8 分、CVSS 4.0 9.3 分,屬最高的「嚴重」等級。截至 2026 年 10 月 7 日沒有正式修補版本(預發布版 0.5.6rc2、0.5.6rc3 改為預設關閉這個端點,但沒有加上認證),也未被列入美國 CISA 的已知遭利用漏洞清單。
關鍵數字
- 嚴重度
- CVSS 3.1 9.8 / CVSS 4.0 9.3(CNA:VulnCheck) cveawg.mitre.org
- 受影響版本
- lmcache 0.5.5 以前(含) cveawg.mitre.org
- 修補版本
- 尚無正式版(最新正式版 0.5.5);預發布版 0.5.6rc2、0.5.6rc3 預設關閉 /run_script,未加認證 github.com
- 首次公開
- 2026-09-15(LMCache issue #5128 公開回報同一問題) github.com
- CVE 公開
- 2026-10-07 cveawg.mitre.org
- 發現者
- Mingkai Yu、Jiajia Liu vulncheck.com
已確認
- lmcache 0.5.5 以前(含)的 /run_script 端點不需認證就能執行送來的 Python 程式碼。
- 匯入限制可被繞過,讓攻擊者以 LMCache 程序的身分執行作業系統指令。
- 截至 2026-10-07 沒有正式修補版本(PyPI 最新正式版為 0.5.5),也未列入 CISA KEV。
- 預發布版 0.5.6rc2、0.5.6rc3 的原始碼在沒有開啟 run_script_api_enabled 時讓 /run_script 回傳 404;這是預設關閉,不是認證。
- 已有公開概念驗證(PoC):回報 issue #5510(該頁含攻擊程式,本站不連結)附有 PoC 並在 0.5.5 上確認;CVE 紀錄中 CISA ADP 把該 issue 標為 exploit,SSVC 評為 Exploitation: poc。
尚未確認 / 說法不一
- 預發布版 0.5.6rc2、0.5.6rc3 的預設關閉是否算這個 CVE 的修補:CVE 紀錄只列出受影響範圍到 0.5.5,LMCache 沒有發安全公告說明。
- 沒有資料顯示已遭實際利用(未列入 CISA KEV)。
- 預設部署是否一定可利用:回報 issue #5510(該頁含攻擊程式,本站不連結)的 PoC 環境是 lmcache 0.5.5 另外加裝 python-multipart,而 PyPI 上 lmcache 0.5.5 的 requires_dist 沒有 python-multipart;只用預設安裝時 /run_script 是否一定能被利用,尚未確認。
可引用的一句話
這個端點的設計就是執行別人送來的程式碼;真正的問題是,它沒有先問對方是誰。
圖片
引用時請標示「PlainCVE」並附上本頁連結。 完整引用格式見下方「如何引用本頁」。有事實錯誤請回報.
LMCache /run_script 未認證遠端程式碼執行:任何連得到管理埠的人都能執行 Python LMCache 是一個 Python 套件,0.5.5 以前(含)的版本有一個管理端點 /run_script,會直接執行任何人送來的 Python 腳本,不檢查身分。負責發布 CVE 的 VulnCheck 給它 CVSS 3.1 9.8 分、CVSS 4.0 9.3 分,屬最高的「嚴重」等級。截至 2026 年 10 月 7 日沒有正式修補版本(預發布版 0.5.6rc2、0.5.6rc3 改為預設關閉這個端點,但沒有加上認證),也未被列入美國 CISA 的已知遭利用漏洞清單。 關鍵數字: - 嚴重度:CVSS 3.1 9.8 / CVSS 4.0 9.3(CNA:VulnCheck)(https://cveawg.mitre.org/api/cve/CVE-2026-107204) - 受影響版本:lmcache 0.5.5 以前(含)(https://cveawg.mitre.org/api/cve/CVE-2026-107204) - 修補版本:尚無正式版(最新正式版 0.5.5);預發布版 0.5.6rc2、0.5.6rc3 預設關閉 /run_script,未加認證(https://github.com/LMCache/LMCache/blob/v0.5.6rc3/lmcache/v1/internal_api_server/common/run_script_api.py) - 首次公開:2026-09-15(LMCache issue #5128 公開回報同一問題)(https://github.com/LMCache/LMCache/issues/5128) - CVE 公開:2026-10-07(https://cveawg.mitre.org/api/cve/CVE-2026-107204) - 發現者:Mingkai Yu、Jiajia Liu(https://www.vulncheck.com/advisories/lmcache-through-0.5.5-unauthenticated-rce-via-run-script-endpoint) 已確認: - lmcache 0.5.5 以前(含)的 /run_script 端點不需認證就能執行送來的 Python 程式碼。 - 匯入限制可被繞過,讓攻擊者以 LMCache 程序的身分執行作業系統指令。 - 截至 2026-10-07 沒有正式修補版本(PyPI 最新正式版為 0.5.5),也未列入 CISA KEV。 - 預發布版 0.5.6rc2、0.5.6rc3 的原始碼在沒有開啟 run_script_api_enabled 時讓 /run_script 回傳 404;這是預設關閉,不是認證。 - 已有公開概念驗證(PoC):回報 issue #5510(該頁含攻擊程式,本站不連結)附有 PoC 並在 0.5.5 上確認;CVE 紀錄中 CISA ADP 把該 issue 標為 exploit,SSVC 評為 Exploitation: poc。 尚未確認 / 說法不一: - 預發布版 0.5.6rc2、0.5.6rc3 的預設關閉是否算這個 CVE 的修補:CVE 紀錄只列出受影響範圍到 0.5.5,LMCache 沒有發安全公告說明。 - 沒有資料顯示已遭實際利用(未列入 CISA KEV)。 - 預設部署是否一定可利用:回報 issue #5510(該頁含攻擊程式,本站不連結)的 PoC 環境是 lmcache 0.5.5 另外加裝 python-multipart,而 PyPI 上 lmcache 0.5.5 的 requires_dist 沒有 python-multipart;只用預設安裝時 /run_script 是否一定能被利用,尚未確認。 「這個端點的設計就是執行別人送來的程式碼;真正的問題是,它沒有先問對方是誰。」— PlainCVE https://plaincve.date/vulns/cve-2026-107204-lmcache-run-script-rce
如何引用本頁
本文採 CC BY 4.0,轉載請保留署名與連結。
PlainCVE 團隊(2026)。《LMCache /run_script 未認證遠端程式碼執行:任何連得到管理埠的人都能執行 Python》。PlainCVE。https://plaincve.date/vulns/cve-2026-107204-lmcache-run-script-rce(查閱日期:YYYY-MM-DD)BibTeX
@misc{cve2026107204lmcacherunscriptrce2026,
title = {LMCache /run_script 未認證遠端程式碼執行:任何連得到管理埠的人都能執行 Python},
author = {PlainCVE 團隊},
year = {2026},
howpublished = {PlainCVE},
url = {https://plaincve.date/vulns/cve-2026-107204-lmcache-run-script-rce},
note = {更新於 2026-10-12}
}