桃子桃子快讯
返回首页
研究论文

DEF CON 研究:七大 AI 编排平台被曝 14 个高危漏洞

研究者在 NocoBase、Flowise、Langflow 等 7 个 AI 智能体编排平台中发现 14 个严重与高危…

2026.08.18 · 周二5 分钟阅读

在 DEF CON 34 上发布的一项安全研究指出,NocoBase、Flowise、Langflow、Dify、Activepieces、Kestra 和 Apache Airflow 这 7 个被广泛用于搭建 AI 智能体与自动化工作流的平台,共计存在 14 个严重与高危漏洞,部分已获得公开的 CVE / GHSA 编号。其中 Langflow 和 Dify 在 GitHub 上的星标数均超过 15 万,Activepieces 也超过 2.3 万,构成了事实上的关键基础设施。

研究核心:默认信任假设带来的系统性风险

研究者指出,这 7 个平台共享同一个危险的默认假设:「任何能触及工作流的人,都被信任可在宿主机上执行代码。」它们本质上是「以单用户开发工具形态交付的多租户代码执行环境」,威胁模型却未能随产品演进。结果是,个人开发者和企业在这些平台上构建智能体时,会原样继承其宽松的威胁模型。

研究者在多个平台上拿到了完整的利用链:Shell 注入、用户代码在验证阶段被执行、提示词注入 LLM 后导向 RCE、沙箱逃逸、以及未认证即可执行代码的 API。最严重的链路几乎不需要任何前置配置:未认证用户即可通过提示词注入触发代码执行并外泄数据,全程无需注册账号;在部分配置下,Flowise、Kestra 与 Langflow 均可在攻击者完全不登录的情况下被利用。

漏洞分布:从「意外」到「故意」的光谱

研究将发现的问题按设计意图排成一个光谱:

  • 意外型:试图构建安全机制,但实际交付时已损坏。
  • LLM 即代码:将 LLM 输出当作可执行代码信任。
  • 错误阶段:构建或应用了沙箱,但用在了错误的执行阶段。
  • 故意型:不应用沙箱,把加固责任完全留给搭建者。

典型案例

NocoBase:在表达式求值器上构建了三层防御(SES Compartment、字符串预处理器、Proxy 守卫),但全部失效。负责启动 SES 的 lockdown() 调用被注释并标记为 TODO;Proxy 的 has() trap 会为 TypeScript 私有字段返回 true(私有性只是编译期概念);而权限校验的 ACL 仅检查 loggedIn。任意已认证用户可借此完成提权,对数据库主机执行 COPY … TO PROGRAM,CVSS 评分 9.9。

Flowise:防御是一套针对 Pyodide 运行时的 38 条正则黑名单,并预导入了 pandas、numpy,使模型无需写 import 语句。\bimport\b 的词边界 bug 也未覆盖 importlib。最终构造出 6 条独立绕过路径,其中仅有一条(import os)被拦截;攻击者可一次 curl 调用,未带凭证,向 /api/v1/prediction/<uuid> 发送指令,让其利用 chr() 拼接 Python 代码,最终经 Pyodide 的 JS 桥进入 Node 作用域执行任意命令。

Langflow:Smart Transform 节点的「验证器」仅做两项检查——字符串以 lambda 开头且包含冒号,随后直接 eval() 该文本。一次聊天消息即可让节点输出 lambda x: __import__('os').system('id') 并被宿主执行,被研究者称为「从聊天框到 shell 的最短路径」。

Dify 与 Activepieces:构建了真实沙箱,但用错了阶段。Dify 的 prescript.py 在调用 lib.DifySeccomp(...) 之前先执行了一个服务端可控的 {{preload}} 字符串;攻击者代码在 chroot、no-new-privs、seccomp 过滤器、uid drop 等所有控制生效前就已运行,研究者在 dify-sandbox 0.2.15 中实测得到 euid=0、NoNewPrivs=0,并成功读取 /etc/shadow。

厂商回应与遗留风险

有厂商将报告定性为「按设计如此」,理由是执行代码本身就是产品功能,加固部署是开发者的责任。但在研究者看来,当必要防御缺失或任何互联网用户都能触发代码执行时,这一论点便不再成立。任何接入这些平台的连接器都应被视为潜在的失陷点。

该研究的完整技术白皮书已公开发布,事件再次提示:在 AI 智能体快速走向生产的过程中,编排与执行环境的安全加固必须与能力建设同步推进。

信源