// 威脅簡報

LMCache /run_script 未認證遠端程式碼執行:任何連得到管理埠的人都能執行 Python

CVSS
9.8 CRITICAL
CISA KEV
未列入
弱點類型
CWE-306

PlainCVE 團隊 · 發布 2026-10-12 · 更新 2026-10-12 · AI 輔助 · 媒體簡報 ↓

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
時間點
  • 首次公開 2026-09-15

藍隊應對手冊

確認、修補 / 緩解、應變、強化。版本符合受影響條件不等於已被入侵;檢查沒有結果也不等於安全,每一項都有能證明與不能證明的範圍。標記的步驟對應下方攻擊流程裡可以擋下攻擊的那一步。

DETECT確認我受影響嗎?有沒有入侵跡象?
  1. 01確認版本

    lmcache 0.5.5 以前(含)都在 CVE 紀錄的受影響範圍內。在哪裡執行:在執行 LMCache 的主機上,而且要在 LMCache 所在的 Python 虛擬環境或容器內(例如先啟用該 venv,或用 docker exec 進入容器)。在別的 Python 環境執行會查不到或查到錯的版本,查不到不代表沒有安裝。

    唯讀查詢
    pip show lmcache | grep -i '^version'
  2. 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:]]'
  3. 03搜尋對 /run_script 的請求紀錄

    資安新聞網站建議檢查紀錄中是否有未經認證、送往 /run_script 的 POST 請求。若你從未使用這個功能,任何這類請求都值得調查。注意:我們沒有找到來源說明 LMCache 預設會不會寫出 HTTP 存取紀錄、紀錄放在哪裡或格式為何;下面的資料夾路徑只是佔位符,請改成你的部署實際存放紀錄的資料夾(例如反向代理或 uvicorn 的紀錄),查不到不代表沒有發生。在哪裡執行:在保存 LMCache 或其前面反向代理紀錄的主機上執行(集中收集紀錄的話,在紀錄伺服器上執行)。這條 PlainCVE 寫法只讀取檔案,-r 會搜尋子資料夾;輪替後壓縮的 .gz 紀錄 grep 讀不到,請另外用 zgrep 搜尋。

    唯讀查詢
    grep -rn 'POST /run_script' /path/to/logs/
MITIGATE修補 / 緩解先修補;還不能修補時先擋住
  1. 01封鎖外部對 LMCache 的存取

    在正式修補版本出現前,資安新聞網站建議用防火牆規則或存取控制清單(ACL)限制外部直接連到 LMCache。這是第三方建議,不是官方公告。

  2. 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 的綁定位址,或不要讓它對外開放。

  3. 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,且管理埠可被其他機器連到,端點仍不檢查呼叫者、可被遠端執行程式碼。

RESPOND應變發現入侵跡象時
  1. 01把主機當成可能已被入侵

    若管理埠曾對外開放,且紀錄裡有不明的 /run_script 請求,攻擊者可能已用伺服器權限執行指令。這是 PlainCVE 的建議:隔離主機並調查。

  2. 02輪替程序環境裡的憑證

    回報者指出可讀到雲端憑證、HF token 等環境變數。確認有可疑存取時,PlainCVE 建議輪替這些憑證。這是預防性建議,不代表已確認外洩。

HARDEN強化長期避免同類問題
  1. 01不要讓管理埠暴露在網路上

    根據 #5128,專案文件本身就提醒這個端點應視同完整的遠端程式碼執行。

  2. 02不要用 root 執行推論服務

    程式碼會以伺服器權限執行;降低權限可限制攻擊者能做的事。

完整修復步驟與說明

目前沒有正式修補版本(PyPI 最新正式版為 0.5.5),我們檢視的資料中也未見 LMCache 安全公告。以下按順序處理:

  1. 先確認曝險:pip show lmcache 看版本;ss -tlnp 看管理埠是綁 0.0.0.0 還是 127.0.0.1。獨立的 lmcache server 預設埠是 8080,內部 API 伺服器開啟後埠從 6999 起;自訂過埠號的請以你的設定為準。
  2. 再縮小曝險:把 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 的綁定位址與防火牆。
  3. 了解強化修改的狀態: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 /run_script 未認證遠端程式碼執行:任何連得到管理埠的人都能執行 Python: 1. 找到可連線的 LMCache 管理埠 → 2. 不需登入,把腳本送到 /run_script → 3. LMCache 直接執行上傳的腳本 → 4. 匯入限制被繞過 → 5. 以 LMCache 程序的身分執行系統指令CVE-2026-107204 · LMCache /run_script 未認證遠端程式碼執行:任何連得到管理埠的人都能執行 Python攻擊者你的系統找到可連線的 LMCache 管理埠 — 依 v0.5.5 原始碼,獨立的 lmcache server HTTP 前端預設綁定 0.0.0.0(所有網路介面)、埠 8080;嵌在 vLLM 裡的內部 API 伺服器預設關閉,手動開啟後綁定 0.0.0.0、埠從 6999 起。攻擊者都需要能從網路連到管理埠。 1找到可連線的 LMCache管理埠不需登入,把腳本送到 /run_script — 這個端點不檢查呼叫者是誰,也不需要任何使用者操作。 2不需登入,把腳本送到/run_scriptLMCache 直接執行上傳的腳本 — 0.5.5 的原始碼用 exec() 執行腳本,並把正在運作的 FastAPI app 物件放進腳本可用的變數裡。 3LMCache 直接執行上傳的腳本匯入限制被繞過 — 受限的 __import__ 可被繞過,讓攻擊者匯入 os 模組(依 CVE 紀錄)。 4匯入限制被繞過以 LMCache 程序的身分執行系統指令 — 權限與伺服器相同,回報者指出在 GPU 推論主機上通常是 root;也可能讀到雲端憑證、HF token 等環境變數。 5以 LMCache 程序的身分執行系統指令攻擊路徑可在此擋下PlainCVE · plaincve.date/vulns/cve-2026-107204-lmcache-run-script-rce · CC BY 4.0
LMCache /run_script 未認證遠端程式碼執行:任何連得到管理埠的人都能執行 Python: 1. 找到可連線的 LMCache 管理埠 → 2. 不需登入,把腳本送到 /run_script → 3. LMCache 直接執行上傳的腳本 → 4. 匯入限制被繞過 → 5. 以 LMCache 程序的身分執行系統指令CVE-2026-107204 · LMCache /run_script 未認證遠端程式碼執行:任何連得到管理埠的人都能執行 Python找到可連線的 LMCache 管理埠 — 依 v0.5.5 原始碼,獨立的 lmcache server HTTP 前端預設綁定 0.0.0.0(所有網路介面)、埠 8080;嵌在 vLLM 裡的內部 API 伺服器預設關閉,手動開啟後綁定 0.0.0.0、埠從 6999 起。攻擊者都需要能從網路連到管理埠。 1攻擊者找到可連線的 LMCache 管理埠不需登入,把腳本送到 /run_script — 這個端點不檢查呼叫者是誰,也不需要任何使用者操作。 2攻擊者不需登入,把腳本送到 /run_scriptLMCache 直接執行上傳的腳本 — 0.5.5 的原始碼用 exec() 執行腳本,並把正在運作的 FastAPI app 物件放進腳本可用的變數裡。 3你的系統LMCache 直接執行上傳的腳本匯入限制被繞過 — 受限的 __import__ 可被繞過,讓攻擊者匯入 os 模組(依 CVE 紀錄)。 4你的系統匯入限制被繞過以 LMCache 程序的身分執行系統指令 — 權限與伺服器相同,回報者指出在 GPU 推論主機上通常是 root;也可能讀到雲端憑證、HF token 等環境變數。 5攻擊者以 LMCache 程序的身分執行系統指令攻擊路徑可在此擋下PlainCVE · CC BY 4.0plaincve.date/vulns/cve-2026-107204-lmcache-run-script-rce
圖片可自由用於報導與教學,採 CC BY 4.0,圖上已附出處。
  1. 攻擊者

    找到可連線的 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、沒有認證)。

  2. 攻擊者

    不需登入,把腳本送到 /run_script

    這個端點不檢查呼叫者是誰,也不需要任何使用者操作。

    防禦: PR #5129(已合併,包含在預發布版 0.5.6rc2、0.5.6rc3)新增 run_script_api_enabled 設定,預設關閉時 /run_script 回傳 404;這不是認證,手動開啟後端點仍不檢查呼叫者。

  3. 你的系統

    LMCache 直接執行上傳的腳本

    0.5.5 的原始碼用 exec() 執行腳本,並把正在運作的 FastAPI app 物件放進腳本可用的變數裡。

    防禦: 不需要這個功能就不要啟用;它本質上就是遠端執行程式碼。

  4. 你的系統

    匯入限制被繞過

    受限的 __import__ 可被繞過,讓攻擊者匯入 os 模組(依 CVE 紀錄)。

    防禦: 受限內建函式不是沙箱,不能當成防護手段。

  5. 攻擊者

    以 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 腳本並執行。問題有兩層:

  1. 沒有認證。 CVE 紀錄把它歸類為 CWE-306(關鍵功能缺少認證):端點不檢查呼叫者是誰。PlainCVE 閱讀 v0.5.5 的原始碼後,也沒有看到處理函式裡有認證檢查(這是本站的判斷,不是來源原話)。
  2. 限制擋不住。 程式用 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-23PR #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-07VulnCheck 發布 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 · 審稿規則

驗證紀錄只寫環境與結果,不公開重現步驟或可攻擊他人系統的程式。詳見 政策.

來源

  1. CVE / NVD / OSVCVE-2026-107204 record (CVE Services API) · CVE Program / VulnCheck (CNA), 2026-10-07 · 查閱 2026-10-07
  2. CVE / NVD / OSVNVD API - CVE-2026-107204 · NIST · 查閱 2026-10-07
  3. 安全公告LMCache through 0.5.5 Unauthenticated RCE via /run_script Endpoint · VulnCheck · 查閱 2026-10-07
  4. 研究文章LMCache issue #5128 · 回報者 apejcic(第三方回報,發在 LMCache GitHub issue), 2026-09-15 · 查閱 2026-10-07
  5. 修補 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
  6. 修補 commit / 版本run_script_api.py at v0.5.6rc3(預發布版) · LMCache (GitHub) · 查閱 2026-10-08
  7. 修補 commit / 版本run_script_api.py at v0.5.6rc2(預發布版) · LMCache (GitHub) · 查閱 2026-10-08
  8. 廠商說明LMCache releases · LMCache (GitHub) · 查閱 2026-10-08
  9. 廠商說明multiprocess/config.py at v0.5.5(獨立 server 預設 http_host、http_port) · LMCache (GitHub) · 查閱 2026-10-08
  10. 廠商說明config.py at v0.5.5(內部 API 伺服器預設值) · LMCache (GitHub) · 查閱 2026-10-08
  11. 廠商說明multiprocess/http_apis/common_api.py at v0.5.5 · LMCache (GitHub) · 查閱 2026-10-08
  12. 廠商說明lmcache on PyPI (JSON API) · PyPI · 查閱 2026-10-08
  13. 廠商說明run_script_api.py at v0.5.5 · LMCache (GitHub) · 查閱 2026-10-07
  14. 其他CVE-2026-107204 LMCache through 0.5.5 unauthenticated RCE · HOL Guard · 查閱 2026-10-07
  15. 新聞報導CVE-2026-107204: Critical LMCache RCE exposes systems to unauthenticated Python code execution · TheHackerWire · 查閱 2026-10-07
  16. 新聞報導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 是否一定能被利用,尚未確認。

可引用的一句話

這個端點的設計就是執行別人送來的程式碼;真正的問題是,它沒有先問對方是誰。

圖片

下載分享圖(PNG) · 攻擊流程圖(可下載)

引用時請標示「PlainCVE」並附上本頁連結。 完整引用格式見下方「如何引用本頁」。有事實錯誤請回報.

如何引用本頁

本文採 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}
}