// 威脅簡報
PraisonAI AgentTeam.launch() 缺少認證:能連到伺服器的人都能列出並呼叫你的 AI 代理
- CVSS
- 9.8 CRITICAL
- CISA KEV
- 未列入
- 弱點類型
- CWE-306 · CWE-862
- 主題
- AI 安全
AI 審稿 2026-10-17(未經人工)指令測試:未提供漏洞重現:未進行驗證紀錄 ↓
PraisonAI 用 AgentTeam.launch() 啟動的 HTTP 伺服器沒有任何認證,能連上它的人不需帳號就能列出並呼叫你部署的 AI 代理。
| 誰會中 | 使用受影響版本的 praisonaiagents(CVE 紀錄寫 1.6.59 以前,並另列 PraisonAI 4.6.59 以前;維護者 GitHub 公告寫 praisonaiagents 4.6.57 以下,兩者不一致),以 AgentTeam.launch() 或 Agents.launch() 啟動 HTTP 伺服器,且該伺服器可從網路連到的人。 |
|---|---|
| 後果 | 視部署的代理而定,攻擊者可能列出代理、呼叫代理、消耗付費的模型用量、讀到代理串接的私有資料,或觸發代理工具與工作流程的副作用。 |
| 現在該做什麼 | 升級 praisonaiagents 到 1.6.59 以上,並且設定環境變數 PRAISONAI_LAUNCH_AUTH_TOKEN;依修補提交,沒設定這個變數時仍會放行所有請求。還不能升級時,Vulert 建議暫時把伺服器綁在 127.0.0.1,不要對外開放。 |
| 受影響版本 | CVE 紀錄:praisonaiagents 1.6.59 以前、PraisonAI 4.6.59 以前;維護者 GitHub 公告:praisonaiagents 4.6.57 以下(兩者不一致) |
| 修好的版本 | praisonaiagents 1.6.59 以上,且須設定 PRAISONAI_LAUNCH_AUTH_TOKEN 才會啟用認證(PraisonAI 4.6.59 可能是對應的修補版,這是 PlainCVE 的判斷) |
| CVSS 向量 | 顯示完整向量CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H |
| 時間點 |
|
藍隊應對手冊
確認、修補 / 緩解、應變、強化。版本符合受影響條件不等於已被入侵;檢查沒有結果也不等於安全,每一項都有能證明與不能證明的範圍。標記的步驟對應下方攻擊流程裡可以擋下攻擊的那一步。
- 01確認版本
只讀取版本,不修改環境。請在執行代理伺服器的那台主機上、安裝 PraisonAI 的同一個 Python 環境(虛擬環境要先啟用)裡執行,否則可能查到別的環境。praisonaiagents 低於 1.6.59 即在 CVE 紀錄的受影響範圍(CVE 紀錄另列 PraisonAI 低於 4.6.59;維護者 GitHub 公告寫 praisonaiagents 4.6.57 以下,1.x 版號都落在這個範圍內)。
唯讀查詢pip show praisonaiagents praisonai | grep -iE '^(name|version)' - 02找出用 launch() 啟動伺服器的程式
只讀取,不修改檔案。請在你自己專案的原始碼根目錄執行,會搜尋所有子資料夾。這個指令只列出 .launch( 呼叫,看不出綁定位置;請逐一檢查找到的呼叫有沒有 host 參數、設成什麼。受影響的前提是用 AgentTeam.launch() 或 Agents.launch() 啟動 HTTP 伺服器,且可從網路連到。注意 Agents.launch() 預設就綁定 0.0.0.0,沒寫 host 也可能對外開放。
唯讀查詢grep -rnE '\.launch\(' --include='*.py' . - 03檢查存取紀錄中的異常呼叫
PlainCVE 的建議(我們查閱的來源中沒有偵測指引):檢查代理伺服器或前端反向代理的紀錄,看是否有來自不認得的來源、對代理清單或代理呼叫路徑的請求,並比對模型供應商的用量是否異常增加。
- 01升級到 praisonaiagents 1.6.59 以上,並設定 PRAISONAI_LAUNCH_AUTH_TOKEN
會修改環境(安裝或升級套件)。請在執行代理伺服器的那台主機上、安裝 PraisonAI 的同一個 Python 環境(虛擬環境要先啟用)裡執行。依修補提交 b4270173,新版會讀取環境變數 PRAISONAI_LAUNCH_AUTH_TOKEN;沒設定時檢查會直接放行所有請求,所以只升級、不設定這個變數,端點仍然不需認證。設定後,請求要在 Authorization 標頭帶 Bearer token 或用 X-Auth-Token 標頭,否則回 401。修補也沒有改變 launch() 的預設綁定位置。
會變更環境pip install -U "praisonaiagents>=1.6.59" - 02還不能升級:綁定 127.0.0.1
Vulert 建議的暫時做法,讓外部連不到伺服器;Vulert 也說明這不是完整修補。
- 01輪替代理串接服務的憑證
PlainCVE 的建議:如果發現可疑呼叫,輪替代理工具所使用的憑證與模型供應商金鑰,並檢查代理工具是否做了非預期的操作。這是預防性做法,不代表已確認外洩。
完整修復步驟與說明
- 升級。
pip install -U "praisonaiagents>=1.6.59"(會修改環境;請在執行代理伺服器的主機、安裝 PraisonAI 的同一個 Python 環境裡執行)。如果你安裝的是praisonai套件,CVE 紀錄列 4.6.59 以前為受影響,PlainCVE 判斷 4.6.59 應是對應版本,升級後請用pip show praisonaiagents確認實際裝到 1.6.59 以上。 - 升級後一定要設定金鑰。 依修補提交
b4270173,launch()的認證只在設定了環境變數PRAISONAI_LAUNCH_AUTH_TOKEN時才啟用;沒設定時會放行所有請求,也就是只升級、不設定,端點仍然不需認證。PlainCVE 的建議:在啟動伺服器的環境設定一個夠長、隨機的值,並讓合法的呼叫端在Authorization: Bearer或X-Auth-Token標頭帶上它。 - 暫時做法只是暫時。 Vulert 建議的綁定
127.0.0.1能擋住外部連線,但同一台機器上的其他程式仍連得到;Vulert 也明說這不是完整修補。 - 確認是否曾被濫用。 我們查閱的來源中沒有偵測指引。PlainCVE 建議比對伺服器紀錄與模型供應商的用量,有可疑呼叫就輪替代理工具用到的憑證。
攻擊流程
從左到右是攻擊發生的順序。藍色盾牌代表這一步可以被擋下,越早擋下越好。點圖示可看細節。
由上到下是攻擊發生的順序。藍色盾牌代表這一步可以被擋下,越早擋下越好。點圖示可看細節。
- 攻擊者
找到一台對外開放的 PraisonAI 代理伺服器
Agents.launch() 預設綁定 0.0.0.0(所有網路介面),官方文件的遠端存取範例也這樣寫,所以伺服器較可能對外開放。
防禦: Vulert 的暫時做法:把伺服器綁在 127.0.0.1,外部就連不到。
- 攻擊者
不帶任何憑證,呼叫列出代理的端點
沒有 Authorization 標頭的請求會被接受,帶明顯錯誤 token 的請求也會被接受。
防禦: 升級 praisonaiagents 到 1.6.59 以上,並設定 PRAISONAI_LAUNCH_AUTH_TOKEN。
- 你的系統
伺服器沒做存取檢查就回傳代理清單
舊版註冊這些路由時沒有加上任何認證或授權檢查。
防禦: 修補提交為這些路由加上 token 檢查,但只在設定了 PRAISONAI_LAUNCH_AUTH_TOKEN 時才生效。
- 你的系統
攻擊者呼叫代理,伺服器直接執行 agent.chat()
每次呼叫都可能消耗你的付費模型用量,也可能讓代理讀出它能存取的私有資料。
防禦: 升級並設定 PRAISONAI_LAUNCH_AUTH_TOKEN;另外,PlainCVE 的建議:在模型供應商端設定用量上限。
- 外部
代理的工具或工作流程被觸發
能造成什麼後果,取決於代理被賦予了哪些工具。
防禦: PlainCVE 的建議:只給代理必要的工具,並使用最小權限的憑證。
影響範圍
| 條件 | 是否受影響 |
|---|---|
praisonaiagents 1.6.59 以前(CVE 紀錄)/ 4.6.57 以下(維護者 GitHub 公告)+ 用 AgentTeam.launch() / Agents.launch() 啟動 HTTP 伺服器 + 伺服器可從網路連到 | 受影響 |
| PraisonAI 4.6.59 以前 | CVE 紀錄列為受影響 |
praisonaiagents 1.6.59 以上,且有設定 PRAISONAI_LAUNCH_AUTH_TOKEN | 已修補(兩份公告都列 1.6.59 以上為修補版;依修補提交,要設定這個變數才會檢查認證) |
praisonaiagents 1.6.59 以上,但沒設定 PRAISONAI_LAUNCH_AUTH_TOKEN | 依修補提交,認證檢查會直接放行,端點仍然不需認證 |
| PraisonAI 4.6.59 | 可能是對應的修補版(PlainCVE 的判斷:CVE 紀錄寫 4.6.59 以前受影響並連到 v4.6.59 發布頁,但沒有來源明確說這版已修補,發布頁也沒有說明) |
只用 praisonai serve agents --api-key 命令列啟動 | 官方公告明確表示不處理這條路徑,本頁無法判斷 |
受影響版本的來源不一致: CVE 紀錄(CNA:GitHub)寫 praisonaiagents 1.6.59 以前、PraisonAI 4.6.59 以前;維護者自己的 GitHub 安全公告(該頁含攻擊程式,本站不連結)則寫 praisonaiagents 受影響版本為 4.6.57 以下、修補版為 1.6.59 以上。praisonaiagents 的版號是 1.x,PlainCVE 判斷維護者公告的上界看起來是把 PraisonAI 的版號誤填到 praisonaiagents 上;GitLab 公告資料庫寫 1.6.59 以前。兩份公告都把 praisonaiagents 1.6.59 以上列為修補版。
回報者實測的是 v4.6.57 發布版與當時的主線提交 2f9677ab。依 PYSEC/OSV 的說明,伺服器需要能從網路連到才會被利用;官方公告指出 Agents.launch() 預設綁定 0.0.0.0(所有網路介面),官方文件的遠端存取範例也這樣寫。PlainCVE 認為這讓不經意對外開放的情況更可能發生。
原理
PraisonAI 可以把一組 AI 代理(由語言模型驅動、能呼叫工具完成任務的程式)包成 HTTP 服務。AgentTeam.launch() 和它的別名 Agents.launch() 會註冊三類端點(伺服器上可被呼叫的網址路徑):一個列出代理,兩個用來呼叫代理。問題是這些路由在列出代理或執行 agent.chat() 之前,完全沒有檢查呼叫者是誰。官方公告指出,沒帶 Authorization 標頭(放登入憑證的欄位)的請求會被接受,帶一個明顯錯誤的 token(存取憑證)也一樣會被接受。
這對應 CWE-306(關鍵功能缺少認證)與 CWE-862(缺少授權)。官方公告也說明,這是 PraisonAI 先前幾則「API 伺服器未認證」公告的同類問題,屬於之前修補沒有涵蓋到的變體。
依據 CVE 紀錄,能連到伺服器的人可能做到:列出代理、消耗模型資源(例如付費的模型用量)、存取代理串接的私有資料,以及觸發代理工具或工作流程的副作用。實際能做到哪些,取決於部署了哪些代理。
有問題的思路(概念示意,不是原始程式碼):
展開程式碼範例(python)
@app.post("/{path}/{agent_id}")
def call_agent(agent_id, body):
# 沒有任何身分檢查,直接執行代理
return agents[agent_id].chat(body.message)修好的思路:
展開程式碼範例(python)
@app.post("/{path}/{agent_id}")
def call_agent(agent_id, body, request):
if not is_authorised(request): # 沒有有效的金鑰就拒絕
raise Unauthorized()
return agents[agent_id].chat(body.message)修補提交 b4270173 的標題寫的是加入 API 金鑰認證中介層。提交的差異內容顯示,praisonaiagents/agents/agents.py 新增了 _authorise_launch_request 檢查,token 來自環境變數 PRAISONAI_LAUNCH_AUTH_TOKEN,會比對 Authorization: Bearer 或 X-Auth-Token 標頭,不符就回 401。要注意的是:沒設定這個環境變數時,檢查會直接放行所有請求;修補也沒有改變 launch() 的預設綁定位置。
時間軸
| 日期 | 事件 |
|---|---|
| 2026-06-17 | PraisonAI v4.6.59 發布(發布頁沒寫年份,2026 年是依修補提交日期推定) |
| 2026-06-17 | 維護者公開 GitHub 安全公告 GHSA-x8cv-xmq7-p8xp(依 GitHub API 的 published_at;該公告頁含攻擊程式,本站不連結) |
| 2026-06-18 | GitHub Advisory Database 審核收錄(OSV 記錄的日期) |
| 2026-06-24 | CVE 編號保留 |
| 2026-07-23 | Python 公告資料庫發布 PYSEC-2026-3537 |
| 2026-10-12 | CVE 紀錄公開 |
| 2026-10-13 | 仍未列入 CISA 已知遭利用漏洞清單 |
延伸閱讀
- 評分: 9.8 是 CNA(GitHub)給的 CVSS 3.1 分數。NVD 尚未自行分析(2026-10-17 查詢時狀態為 Awaiting Analysis),目前唯一的分數就是 GitHub 的。
- 公開日期: 維護者的 GitHub 安全公告於 2026-06-17 公開(GitHub API 的 published_at;該頁含攻擊程式,本站不連結),早於 2026-10-12 的 CVE 紀錄,本頁以 6 月 17 日為首次公開。OSV 與 GitLab 寫的 2026-06-18 是 GitHub Advisory Database 審核收錄的時間;Vulert 的 CVE 頁面寫的 2026-07-23 是 PYSEC-2026-3537 的發布日。
- 是否算「遠端程式碼執行」: Miggo 把這個 CVE 標為「Unauth RCE」(未認證遠端程式碼執行)。官方公告與 CVE 紀錄描述的是「未認證呼叫代理」,沒有說能執行任意程式碼。PlainCVE 的判斷是:能否進一步執行程式碼,取決於代理被賦予了哪些工具,這個標籤應視為未確認。
- 利用狀況: 官方公告附有只在本機執行的概念驗證,用來確認端點不需認證就會回應(該頁含攻擊程式,本站不連結);這是公開的驗證程式,不是攻擊證據。資料中沒有遭實際利用或修補前被利用的證據。FIRST 的 EPSS(預測被利用機率的分數)為 0.33%(百分位約 24%,2026-10-16)。
- 發現者: 維護者的 GitHub 安全公告致謝 rexpository 為回報者(Reporter)。CVE 紀錄的發現欄位(discovery)為 UNKNOWN,那是發現管道的類別,不代表沒有致謝。
- 其他編號:PYSEC-2026-3537。
驗證紀錄 AI 依審稿規則逐項核對來源,全部通過;未經人工審稿,也尚未在我們的環境重現
| AI 審稿 | 2026-10-17 · 審稿規則 |
|---|
驗證紀錄只寫環境與結果,不公開重現步驟或可攻擊他人系統的程式。詳見 政策.
來源
- CVE / NVD / OSVCVE-2026-57118 Record (CVE API) · CVE Program, 2026-10-12 · 查閱 2026-10-13
- CVE / NVD / OSVNVD API - CVE-2026-57118 · NIST · 查閱 2026-10-13
- 修補 commit / 版本feat(auth): implement API key authentication middleware for AgentOS (b4270173) · MervinPraison (GitHub), 2026-06-17 · 查閱 2026-10-13
- 修補 commit / 版本PraisonAI v4.6.59 release · MervinPraison (GitHub), 2026-06-17 · 查閱 2026-10-13
- 安全公告GitLab Advisory Database - praisonaiagents GHSA-x8cv-xmq7-p8xp · GitLab · 查閱 2026-10-13
- 研究文章CVE-2026-57118: PraisonAI AgentTeam Unauth RCE · Miggo · 查閱 2026-10-13
- 其他CVE-2026-57118 · Vulert · 查閱 2026-10-13
媒體簡報
一句話
PraisonAI 是一套用來組建多個 AI 代理協同工作的開源框架。它用 AgentTeam.launch() 啟動的 HTTP 伺服器完全沒有認證,任何能連上的人都能列出並呼叫部署的代理。CVE 編號負責單位(GitHub)給出 CVSS 9.8 的評分,修補版 praisonaiagents 1.6.59 已釋出,但依修補提交,升級後還要設定 PRAISONAI_LAUNCH_AUTH_TOKEN 才會啟用認證。截至 2026 年 10 月 13 日,它不在美國 CISA 的已知遭利用漏洞清單上。
關鍵數字
- 嚴重度
- CVSS 3.1 9.8(CNA:GitHub;NVD 尚未分析) cveawg.mitre.org
- 修補版本
- praisonaiagents 1.6.59 cveawg.mitre.org
- GitHub 安全公告
- GHSA-x8cv-xmq7-p8xp cveawg.mitre.org
- CVE 公開
- 2026-10-12 cveawg.mitre.org
已確認
- praisonaiagents 1.6.59 以前,AgentTeam.launch() 與 Agents.launch() 註冊的代理清單與呼叫端點沒有任何存取檢查。
- 官方公告指出,沒帶 Authorization 標頭或帶錯誤 token 的請求都會被接受,且 Agents.launch() 預設綁定 0.0.0.0。
- 截至 2026-10-13,未列入 CISA 已知遭利用漏洞清單。
尚未確認 / 說法不一
- 受影響版本說法不一:CVE 紀錄寫 praisonaiagents 1.6.59 以前,維護者 GitHub 公告寫 4.6.57 以下(修補寫 1.6.59 以上);維護者公告的上界看起來是把 PraisonAI 的版號誤填到 praisonaiagents 上,這是 PlainCVE 的判斷。
- Miggo 把它標為「未認證遠端程式碼執行」,但官方公告與 CVE 紀錄都沒有這樣說;是否能執行程式碼取決於代理的工具。
- 資料中沒有遭實際利用的證據,也無法確認是否在修補前就被利用。
- PraisonAI 4.6.59 是否為對應修補版,沒有來源明確寫出,這是 PlainCVE 的判斷。
可引用的一句話
把 AI 代理放上網路卻不設門,等於讓陌生人用你的帳單、你的資料和你的工具替他做事。
圖片
引用時請標示「PlainCVE」並附上本頁連結。 完整引用格式見下方「如何引用本頁」。有事實錯誤請回報.
PraisonAI AgentTeam.launch() 缺少認證:能連到伺服器的人都能列出並呼叫你的 AI 代理 PraisonAI 是一套用來組建多個 AI 代理協同工作的開源框架。它用 AgentTeam.launch() 啟動的 HTTP 伺服器完全沒有認證,任何能連上的人都能列出並呼叫部署的代理。CVE 編號負責單位(GitHub)給出 CVSS 9.8 的評分,修補版 praisonaiagents 1.6.59 已釋出,但依修補提交,升級後還要設定 PRAISONAI_LAUNCH_AUTH_TOKEN 才會啟用認證。截至 2026 年 10 月 13 日,它不在美國 CISA 的已知遭利用漏洞清單上。 關鍵數字: - 嚴重度:CVSS 3.1 9.8(CNA:GitHub;NVD 尚未分析)(https://cveawg.mitre.org/api/cve/CVE-2026-57118) - 修補版本:praisonaiagents 1.6.59(https://cveawg.mitre.org/api/cve/CVE-2026-57118) - GitHub 安全公告:GHSA-x8cv-xmq7-p8xp(https://cveawg.mitre.org/api/cve/CVE-2026-57118) - CVE 公開:2026-10-12(https://cveawg.mitre.org/api/cve/CVE-2026-57118) 已確認: - praisonaiagents 1.6.59 以前,AgentTeam.launch() 與 Agents.launch() 註冊的代理清單與呼叫端點沒有任何存取檢查。 - 官方公告指出,沒帶 Authorization 標頭或帶錯誤 token 的請求都會被接受,且 Agents.launch() 預設綁定 0.0.0.0。 - 截至 2026-10-13,未列入 CISA 已知遭利用漏洞清單。 尚未確認 / 說法不一: - 受影響版本說法不一:CVE 紀錄寫 praisonaiagents 1.6.59 以前,維護者 GitHub 公告寫 4.6.57 以下(修補寫 1.6.59 以上);維護者公告的上界看起來是把 PraisonAI 的版號誤填到 praisonaiagents 上,這是 PlainCVE 的判斷。 - Miggo 把它標為「未認證遠端程式碼執行」,但官方公告與 CVE 紀錄都沒有這樣說;是否能執行程式碼取決於代理的工具。 - 資料中沒有遭實際利用的證據,也無法確認是否在修補前就被利用。 - PraisonAI 4.6.59 是否為對應修補版,沒有來源明確寫出,這是 PlainCVE 的判斷。 「把 AI 代理放上網路卻不設門,等於讓陌生人用你的帳單、你的資料和你的工具替他做事。」— PlainCVE https://plaincve.date/vulns/cve-2026-57118-praisonai-agent-launch-missing-auth
如何引用本頁
本文採 CC BY 4.0,轉載請保留署名與連結。
PlainCVE 團隊(2026)。《PraisonAI AgentTeam.launch() 缺少認證:能連到伺服器的人都能列出並呼叫你的 AI 代理》。PlainCVE。https://plaincve.date/vulns/cve-2026-57118-praisonai-agent-launch-missing-auth(查閱日期:YYYY-MM-DD)BibTeX
@misc{cve202657118praisonaiagentlaunchmissingauth2026,
title = {PraisonAI AgentTeam.launch() 缺少認證:能連到伺服器的人都能列出並呼叫你的 AI 代理},
author = {PlainCVE 團隊},
year = {2026},
howpublished = {PlainCVE},
url = {https://plaincve.date/vulns/cve-2026-57118-praisonai-agent-launch-missing-auth},
note = {更新於 2026-10-17}
}