// 威脅簡報
Langflow 公開流程端點遠端程式碼執行:不用登入就能在伺服器上執行任意 Python
- CVSS
- 9.8 CRITICAL
- CISA KEV
- 2026-03-25
- 弱點類型
- CWE-94 · CWE-95 · CWE-306
- 主題
- AI 安全
人工審稿 2026-09-24指令測試:未提供漏洞重現:未進行驗證紀錄 ↓
Langflow 執行公開流程的端點不需登入,卻會執行呼叫者自己送來的 Python 程式碼,攻擊者可藉此接管伺服器。已遭實際利用。
| 誰會中 | 使用 Langflow 1.9.0 以前版本(或 langflow-base 0.9.0 以前)、已有可存取的公開流程或設定讓未登入者能自己建立一個(例如開啟 AUTO_LOGIN),且服務可從網路連到的組織。被廣泛稱為「已修補」的 1.8.2 其實仍有漏洞。 |
|---|---|
| 後果 | 攻擊者不需帳號就能以伺服器程式的權限執行任意程式碼,讀取環境變數中的 AI 服務 API 金鑰、雲端帳號與資料庫憑證。 |
| 現在該做什麼 | 升級 Langflow 到 1.9.0 以上。若 1.9.0 以前的版本曾對網際網路開放,應假設已遭入侵並輪替所有金鑰。查看依據(4)
|
| 受影響版本 | 1.9.0 以前的所有版本(廠商公告寫 ≤ 1.8.2;CNA 與 GitLab 寫 < 1.9.0;1.8.3、1.8.4 是否修補未確認,應視為受影響);另一個套件 langflow-base 在 0.9.0 以前受影響(JFrog)查看依據:來源說法不一(4)
|
| 修好的版本 | langflow 1.9.0 以上、langflow-base 0.9.0 以上(1.8.2 經 JFrog 證實未修好)查看依據(4)
|
| CVSS 向量 | 顯示完整向量CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H |
| 時間點 |
|
| CISA KEV | 已列入(2026-03-25),代表已有實際攻擊案例查看依據(4)
|
藍隊應對手冊
確認、修補 / 緩解、應變、強化。版本符合受影響條件不等於已被入侵;檢查沒有結果也不等於安全,每一項都有能證明與不能證明的範圍。標記的步驟對應下方攻擊流程裡可以擋下攻擊的那一步。
- 01找出所有 Langflow 並確認版本
包含 PyPI 的 langflow 與 langflow-base 套件、Docker 映像檔與 nightly 版本。langflow 1.9.0 以前、langflow-base 0.9.0 以前一律視為受影響,1.8.2 也不例外。
唯讀查詢pip list 2>/dev/null | grep -i '^langflow' - 02確認曝險條件:公開流程、對外可達、AUTO_LOGIN
已有可存取的公開流程、或設定讓未登入者能自己建立一個,且服務可從網路連到時風險最高。依廠商公告,AUTO_LOGIN 開啟時(所有人都以超級使用者身分自動登入),沒登入的人也能自己建立公開流程,所以目前沒有公開流程不代表安全。
唯讀查詢env | grep -i LANGFLOW_AUTO_LOGIN - 03檢查存取紀錄中的公開建置端點請求
找出打到 /api/v1/build_public_tmp 的請求,特別是來自陌生來源或大量重複的請求。Sysdig 公布的攻擊來源 IP 可作為比對參考(見延伸閱讀)。
唯讀查詢grep -n 'build_public_tmp' /path/to/access.log - 04找出程式碼已被執行的跡象
研究人員建議:Langflow 程序啟動的 shell 或 curl/wget、讀取 .env 或其他敏感檔案、對 interactsh / oast.* 等回呼服務的 DNS 查詢或連線,以及連往 Sysdig 公布之 C2 位址的流量。
- 01升級到 1.9.0 以上
這是廠商公告的修補,也是唯一完整的修法。修補後公開端點只使用資料庫中存好的流程。
會變更環境pip install -U "langflow>=1.9.0" - 02單獨安裝 langflow-base 的環境
JFrog 指出 langflow-base 套件同樣受影響,0.9.0 起修補。只裝 langflow-base 的環境要升級到 0.9.0 以上。
會變更環境pip install -U "langflow-base>=0.9.0" - 03還不能升級:封鎖端點或下線
廠商沒有公布修補以外的替代方案。研究人員建議封鎖或限制 /api/v1/build_public_tmp,把服務放在防火牆、認證層或 WAF 後面;對網際網路開放的實例在升級前先下線。
- 04共用部署關閉 AUTO_LOGIN
官方文件建議共用或公開部署設定 LANGFLOW_AUTO_LOGIN=False,並不要把連接埠直接暴露在網際網路。這不能單獨修好本漏洞,但能減少其他暴露面。
- 01假設已遭入侵並輪替憑證
研究人員建議:若 1.9.0 以前的實例曾對網際網路開放,就假設已遭入侵,輪替所有 AI 服務與雲端 API 金鑰及資料庫憑證。
- 02盤點實例上的環境變數與駐留痕跡
列出實例上存了哪些機密,決定輪替範圍;並檢查是否有攻擊者留下的第二階段程式。必要時以乾淨環境重建。
- 01機密放進機密管理服務,金鑰限縮範圍
不要把金鑰放在一般環境變數;使用有範圍與用量上限的 API 金鑰,降低單一實例被攻破時的損失。
- 02把 AI 工具納入資產盤點,並自行驗證修補
1.8.2 被許多報導稱為已修補卻沒有修好。把 Langflow 這類 AI 工具納入弱點管理,並確認修補真的在你執行的版本裡。
完整修復步驟與說明
- 確認版本。
pip show langflow langflow-base;Docker 部署請檢查映像檔標籤。langflow-base 需 0.9.0 以上。1.8.2 不算修好,不要只看報導裡寫的版本號。 - 升級。
pip install -U "langflow>=1.9.0",或換成 1.9.0 以上的 Docker 映像檔。1.9.0 在 PyPI 上的釋出日期是 2026-04-14。只裝 langflow-base 的環境:pip install -U "langflow-base>=0.9.0"。 - 順序。 若實例曾對網際網路開放,先隔離或下線、再升級、最後輪替憑證;在舊版仍對外開放時輪替,新金鑰可能再次被偷走。
- 官方 vs. 研究人員。 廠商公告只提供升級這一種修法;封鎖端點、WAF、下線、假設已遭入侵並輪替金鑰等,來自 Sysdig 與 CSA 的建議。CISA 要求聯邦機關依廠商指示處置、雲端服務依 BOD 22-01 辦理,否則停止使用。
攻擊流程
從左到右是攻擊發生的順序。藍色盾牌代表這一步可以被擋下,越早擋下越好。點圖示可看細節。
- 攻擊者
找到對外開放的 Langflow 與公開流程的 ID
廠商公告指出,公開流程常用於展示與分享,ID 可從分享連結得知。Sysdig 觀察到攻擊者以自動化掃描尋找目標。
防禦: 不要把 Langflow 連接埠直接暴露在網際網路;放在防火牆或認證層後面。
- 攻擊者
呼叫公開流程的建置端點,附上自己編寫的流程定義
這個端點本來就設計成不需登入。攻擊者送來的定義裡夾帶自訂的 Python 元件程式碼。
防禦: 升級前的暫時措施(研究人員建議):在反向代理或 WAF 封鎖或限制 /api/v1/build_public_tmp 路徑。
- 你的系統
Langflow 採用呼叫者送來的定義,而不是資料庫裡存的流程
舊版的邏輯是「呼叫者有送定義就用它,沒有才讀存好的」。
防禦: 升級到 1.9.0 以上:公開端點一律只讀取資料庫中的流程,忽略呼叫者送來的定義。
- 你的系統
伺服器用 exec() 執行其中的 Python 程式碼
建置流程時,自訂元件程式碼會在沒有沙箱的情況下執行,權限等同伺服器程式本身。
防禦: 監控由 Langflow 程序啟動的 shell、curl 或 wget(Sysdig 建議可用 Falco 規則)。
- 攻擊者
偵察、竊取憑證並嘗試長期駐留
Sysdig 觀察到攻擊者列出目錄、傾印環境變數、收集憑證,並嘗試下載第二階段程式以留在機器上。
防禦: 把機密放進機密管理服務而非環境變數;使用有範圍與用量限制的 API 金鑰;遭入侵時立即輪替。
影響範圍
| 條件 | 是否受影響 |
|---|---|
| Langflow 1.9.0 以前 + 已有可存取的公開流程,或設定讓未登入者能自己建立一個(例如 AUTO_LOGIN 開啟) + 可從網路連到 | 受影響 |
| Langflow 1.8.2 | 受影響。許多報導稱它已修補,但 JFrog 證實 PyPI 與 Docker 版都仍可被利用 |
| Langflow 1.8.3、1.8.4 | 未確認。廠商公告寫「≤ 1.8.2」受影響,CNA 與 GitLab 寫「< 1.9.0」受影響;本頁建議視為受影響 |
| Langflow 1.9.0 以上 | 已修補 |
| langflow-nightly 1.9.0.dev18 | JFrog 確認修補有效 |
| langflow-base 0.9.0 以前 | 受影響(JFrog 列出;0.9.0 起修補,PyPI 釋出日 2026-04-14) |
依廠商公告,攻擊者需要一個可存取的公開流程及其 ID,而 ID 可能從分享連結得知。但公告的「前提條件」也寫明:若 AUTO_LOGIN(自動以超級使用者登入)是開啟的,沒登入的攻擊者可以自己建立一個公開流程,就完全沒有認證門檻。所以受影響的條件是「已經有可存取的公開流程,或設定讓未登入者能自己建立一個」;目前沒有公開流程,不代表安全。現行官方文件說這個設定在程式中預設開啟、在官方 Docker 映像檔中預設關閉;漏洞版本當時的預設行為是否相同,未確認。
原理
Langflow 讓人用拖拉元件的方式搭建 AI 工作流程(稱為「流程」,flow)。流程可以設為公開,讓人不用登入就能執行。流程的定義裡可以包含自訂的 Python 元件程式碼,Langflow 在「建置」流程時會用 Python 的 exec()(把一段文字當程式執行的函式)執行它,沒有沙箱隔離。
問題出在執行公開流程的端點(/api/v1/build_public_tmp/{flow_id}/flow)同時有兩個缺陷:
- 它本來就設計成不需登入(CWE-306,關鍵功能缺少認證)。
- 它除了讀取資料庫裡存好的流程,也接受呼叫者自己送來的完整流程定義。
兩者加在一起:任何人都能送一份夾帶 Python 程式碼的流程定義,伺服器就以自己的權限執行它(CWE-94 程式碼注入、CWE-95 eval 注入)。廠商公告列出的後果包括讀取環境變數中的 API 金鑰與資料庫憑證。
有問題的思路(概念示意,不是原始程式碼):
展開程式碼範例(python)
def build_public_flow(flow_id, data=None):
# 呼叫者有送定義就用呼叫者的,沒有才讀存好的
flow = data if data is not None else load_saved_flow(flow_id)
build(flow) # 其中的自訂元件程式碼會被執行修好的思路:
展開程式碼範例(python)
def build_public_flow(flow_id, data=None):
# 一律只讀資料庫裡存好的流程,忽略呼叫者送來的任何定義
flow = load_saved_flow(flow_id)
build(flow)修補 commit 73b6612 就是這樣做,並加上單元測試確認該參數會被忽略。廠商強調的原則是:公開流程只能執行存好的定義,絕不執行呼叫者送來的定義。
時間軸
| 日期 | 事件 |
|---|---|
| 2026-02-26 | 研究人員 Aviral Srivastava 通報(依 CSA 引用的二手報導;廠商致謝名稱為 Aviral2642) |
| 2026-03-16 | 廠商在 GitHub 儲存庫發布安全公告 GHSA-vwmf-pq79-vjvx(12:20 UTC),第一次公開 |
| 2026-03-17 | 同一份公告收錄進 GitHub 全域公告資料庫(20:05 UTC),是另一次發布;Sysdig 以這個時間為公告發布時間,GitLab 也記為 3/17 |
| 2026-03-17 / 20 | 1.8.2 釋出(GitHub 標籤 3/17、PyPI 3/20),後來證實沒有修好 |
| 2026-03-18 | Sysdig 觀察到第一次利用嘗試(16:04 UTC),當晚已出現竊取憑證。Sysdig 說的「約 20 小時」是從 3/17 20:05 的全域公告算起;從 3/16 的儲存庫公告算起約 52 小時 |
| 2026-03-20 | CVE 公開 |
| 2026-03-25 | CISA 列入已知遭利用漏洞清單,聯邦期限 2026-04-08 |
| 2026-03-26 | JFrog 證實 1.8.2 仍可被利用;GitHub issue #12345 開立 |
| 2026-03-26 / 04-01 | 1.8.3、1.8.4 於 PyPI 釋出,修補狀態未確認 |
| 2026-04-06 / 14 | 1.9.0 釋出(GitHub 標籤 4/6、PyPI 4/14),第一個確認修好的版本 |
延伸閱讀
- 評分差異: NVD 的 CVSS 3.1 為 9.8,GitHub(CNA)的 CVSS 4.0 為 9.3;兩者版本不同,都屬「嚴重」。第三方報導依採用的分數而異。
- 1.9.0 釋出日期的分歧: CSA 稱 1.9.0 於 3/17 隨公告釋出,但 PyPI(4/14)、GitHub 標籤(4/6)與 JFrog 3/26 的說法(當時 1.9.0 尚未正式釋出)都與此不符,本頁採用 PyPI 與 GitHub。
- NVD 版本範圍: NVD 的 CPE 範圍無法人工核對,且仍列出 1.8.2 的釋出頁作為參考,視為未確認。
- 與 CVE-2025-3248 的關係: 那是 Langflow 另一個不需登入的程式碼執行漏洞(
/api/v1/validate/code,1.3.0 修補)。廠商明確表示本漏洞是獨立的問題。 - 入侵指標(來自 Sysdig,非廠商或 CISA 公布): 攻擊來源 IP 77.110.106.154、209.97.165.247、188.166.209.86、205.237.106.117、83.98.164.238、173.212.205.251;回報的 C2 伺服器 143.110.183.86:8080;下載器主機 173.212.205.251:8443;對
oast.live底下 interactsh 網域的回呼。 - 已有公開的概念驗證程式(JFrog 確認),本頁不提供連結。
- CSA 提到另一個 Langflow 漏洞 CVE-2026-33309(CVSS 9.9,1.9.0 修補),本頁未以一手來源核實。
- 相關弱點類型:CWE-94、CWE-95、CWE-306。
驗證紀錄 已人工審稿、核對來源;尚未在我們的環境重現
| 人工審稿 | 2026-09-24 |
|---|
驗證紀錄只寫環境與結果,不公開重現步驟或可攻擊他人系統的程式。詳見 政策.
來源
- 安全公告Unauthenticated Remote Code Execution in Langflow via Public Flow Build Endpoint (GHSA-vwmf-pq79-vjvx) · Langflow (langflow-ai), 2026-03-16 · 查閱 2026-09-23
- CVE / NVD / OSVNVD CVE API record CVE-2026-33017 · NIST NVD, 2026-03-20 · 查閱 2026-09-23
- CVE / NVD / OSVCVE-2026-33017 CVE record · CVE Program / GitHub (CNA), 2026-03-20 · 查閱 2026-09-23
- 修補 commit / 版本fix: prevent RCE via data parameter in build_public_tmp endpoint (#12160) · Langflow (langflow-ai) · 查閱 2026-09-23
- 修補 commit / 版本Release 1.8.2 · Langflow (langflow-ai), 2026-03-17 · 查閱 2026-09-23
- 修補 commit / 版本Release 1.9.0 · Langflow (langflow-ai), 2026-04-06 · 查閱 2026-09-23
- 其他langflow release history · PyPI · 查閱 2026-09-23
- 安全公告Langflow Unauth RCE (CVE-2025-3248) · GitHub Advisory Database, 2025-06-17 · 查閱 2026-09-23
- 安全公告CVE-2026-33017: Unauthenticated Remote Code Execution in Langflow via Public Flow Build Endpoint · GitLab Advisory Database, 2026-03-17 · 查閱 2026-09-23
- 其他CVE-2026-33017 is not fixed in langflow 1.8.2 · Issue #12345 · GitHub (langflow-ai/langflow), 2026-03-26 · 查閱 2026-09-23
- 研究文章Langflow CVE-2026-33017: Latest 'fixed' version is still exploitable · JFrog Security Research, 2026-03-26 · 查閱 2026-09-23
- 研究文章CVE-2026-33017: How attackers compromised Langflow AI pipelines in 20 hours · Sysdig, 2026-03-19 · 查閱 2026-09-23
- 研究文章Langflow RCE CVE-2026-33017: Exploited Within 20 Hours · Cloud Security Alliance, 2026-03-25 · 查閱 2026-09-23
- 廠商說明API keys and authentication · Langflow · 查閱 2026-09-23
- 安全公告GitHub Advisory Database API record GHSA-vwmf-pq79-vjvx · GitHub Advisory Database, 2026-03-17 · 查閱 2026-09-24
- 安全公告GitHub repository security advisory API record GHSA-vwmf-pq79-vjvx · Langflow (langflow-ai), 2026-03-16 · 查閱 2026-09-24
- 其他langflow-base release history · PyPI · 查閱 2026-09-24
媒體簡報
一句話
Langflow 是用來搭建 AI 工作流程的開源工具。它執行「公開流程」的端點不需要登入,卻會執行呼叫者自己送來的 Python 程式碼,讓任何人都能接管伺服器。資安公司 Sysdig 觀察到公告收錄進 GitHub 公告資料庫(2026 年 3 月 17 日)後約 20 小時就出現攻擊,美國 CISA 於 2026 年 3 月 25 日將它列入已知遭利用漏洞清單。確認修好的版本是 1.9.0,先前被廣泛稱為修補版的 1.8.2 其實仍有漏洞。
關鍵數字
- 嚴重度
- CVSS 3.1 9.8(NVD);CVSS 4.0 9.3(CNA) services.nvd.nist.gov
- 列入 CISA KEV
- 2026-03-25(聯邦機關期限 2026-04-08) cveawg.mitre.org
- 修補版本
- 1.9.0 以上 github.com
- 1.8.2 未修好
- JFrog 於 2026-03-26 證實 research.jfrog.com
- 首次攻擊
- GitHub 全域公告發布(2026-03-17 20:05 UTC)後約 20 小時(2026-03-18 16:04 UTC,Sysdig 觀察) sysdig.com
已確認
- 公開流程的建置端點不需登入,且會執行呼叫者送來的流程定義中的 Python 程式碼。
- CISA 已將它列入已知遭利用漏洞清單;Sysdig 觀察到掃描、偵察與竊取憑證。
- 1.8.2 仍有漏洞,1.9.0 是確認修好的版本。
尚未確認 / 說法不一
- 1.8.3 與 1.8.4 是否已修補:廠商公告(≤ 1.8.2)與 CNA、GitLab(< 1.9.0)說法不同。
- 1.9.0 的釋出日期:GitHub 標籤為 4 月 6 日、PyPI 為 4 月 14 日,CSA 則稱 3 月 17 日與公告同時釋出。
- NVD 的精確受影響版本範圍無法人工確認。
- 通報日期 2026-02-26 僅來自 CSA 引用的二手報導。
可引用的一句話
一個本來只該「照表操課」的公開按鈕,卻願意照陌生人寫的新劇本演出。
圖片
引用時請標示「PlainCVE」並附上本頁連結。 完整引用格式見下方「如何引用本頁」。有事實錯誤請回報.
Langflow 公開流程端點遠端程式碼執行:不用登入就能在伺服器上執行任意 Python Langflow 是用來搭建 AI 工作流程的開源工具。它執行「公開流程」的端點不需要登入,卻會執行呼叫者自己送來的 Python 程式碼,讓任何人都能接管伺服器。資安公司 Sysdig 觀察到公告收錄進 GitHub 公告資料庫(2026 年 3 月 17 日)後約 20 小時就出現攻擊,美國 CISA 於 2026 年 3 月 25 日將它列入已知遭利用漏洞清單。確認修好的版本是 1.9.0,先前被廣泛稱為修補版的 1.8.2 其實仍有漏洞。 關鍵數字: - 嚴重度:CVSS 3.1 9.8(NVD);CVSS 4.0 9.3(CNA)(https://services.nvd.nist.gov/rest/json/cves/2.0?cveId=CVE-2026-33017) - 列入 CISA KEV:2026-03-25(聯邦機關期限 2026-04-08)(https://cveawg.mitre.org/api/cve/CVE-2026-33017) - 修補版本:1.9.0 以上(https://github.com/langflow-ai/langflow/security/advisories/GHSA-vwmf-pq79-vjvx) - 1.8.2 未修好:JFrog 於 2026-03-26 證實(https://research.jfrog.com/post/langflow-latest-version-was-not-fixed/) - 首次攻擊:GitHub 全域公告發布(2026-03-17 20:05 UTC)後約 20 小時(2026-03-18 16:04 UTC,Sysdig 觀察)(https://www.sysdig.com/blog/cve-2026-33017-how-attackers-compromised-langflow-ai-pipelines-in-20-hours) 已確認: - 公開流程的建置端點不需登入,且會執行呼叫者送來的流程定義中的 Python 程式碼。 - CISA 已將它列入已知遭利用漏洞清單;Sysdig 觀察到掃描、偵察與竊取憑證。 - 1.8.2 仍有漏洞,1.9.0 是確認修好的版本。 尚未確認 / 說法不一: - 1.8.3 與 1.8.4 是否已修補:廠商公告(≤ 1.8.2)與 CNA、GitLab(< 1.9.0)說法不同。 - 1.9.0 的釋出日期:GitHub 標籤為 4 月 6 日、PyPI 為 4 月 14 日,CSA 則稱 3 月 17 日與公告同時釋出。 - NVD 的精確受影響版本範圍無法人工確認。 - 通報日期 2026-02-26 僅來自 CSA 引用的二手報導。 「一個本來只該「照表操課」的公開按鈕,卻願意照陌生人寫的新劇本演出。」— PlainCVE https://plaincve.date/vulns/cve-2026-33017-langflow-public-flow-rce
如何引用本頁
本文採 CC BY 4.0,轉載請保留署名與連結。
PlainCVE 團隊(2026)。《Langflow 公開流程端點遠端程式碼執行:不用登入就能在伺服器上執行任意 Python》。PlainCVE。https://plaincve.date/vulns/cve-2026-33017-langflow-public-flow-rce(查閱日期:YYYY-MM-DD)BibTeX
@misc{cve202633017langflowpublicflowrce2026,
title = {Langflow 公開流程端點遠端程式碼執行:不用登入就能在伺服器上執行任意 Python},
author = {PlainCVE 團隊},
year = {2026},
howpublished = {PlainCVE},
url = {https://plaincve.date/vulns/cve-2026-33017-langflow-public-flow-rce},
note = {更新於 2026-09-24}
}