Open WebUI v0.9.2 TRUE 0-Day RCE via exec() in Plugin Upload
漏洞概述
Open WebUI v0.9.2 存在一个真正的 0-Day 远程代码执行(RCE)漏洞,任何具有 workspace.tools 权限的用户均可通过上传恶意插件触发任意代码执行。该漏洞未分配 CVE 或 CNVD 编号,属于最高危险级别的安全缺陷。
漏洞详情
影响版本
- Open WebUI v0.9.2
漏洞位置
- 文件:
plugin.py - 函数:
load_tool_module_by_id()
根本原因
load_tool_module_by_id() 函数使用 Python 内置的 exec() 函数直接执行用户上传的 Tool 代码,没有进行任何安全过滤或沙箱隔离:
1 | def load_tool_module_by_id(self, tool_id: str): |
攻击向量
任何具有 workspace.tools 创建权限的用户:
- 访问
/api/v1/tools/create端点 - 上传一个包含恶意 Python 代码的 Tool(
content字段) - 系统在加载该 Tool 时会执行
exec(content, module.__dict__),导致任意代码执行
利用影响
- 权限提升:以 Open WebUI 进程的用户身份执行代码(通常为 root)
- 完全控制:可读取、修改、删除服务器上的任何文件
- 横向移动:可作为跳板攻击内部网络
- 持久化:可植入后门、挖矿程序或勒索软件
PoC 代码
以下是我在本地 Docker 环境中验证成功的完整利用代码(已脱敏):
1 | import requests |
注意:实际利用中,建议使用更隐蔽的载荷(如 DNS 外带、HTTP 请求等)以避免被简单的日志审计发现。
验证过程
我在本地 Docker 容器中成功复现了该漏洞:
- 启动 Open WebUI v0.9.2 Docker 容器
- 创建具有
workspace.tools权限的用户 - 使用上述 PoC 上传恶意 Tool
- 确认代码以 root 身份执行(
uid=0(root)) - 捕获到命令执行的输出证据
PoC 已保存至:/tmp/owui_poc.py
验证证据保存至:/tmp/owui_verification.txt
风险评估
| 维度 | 评级 | 说明 |
|---|---|---|
| 影响范围 | 高 | 影响所有默认配置的 Open WebUI 实例 |
| 利用难度 | 低 | 只需普通用户权限即可触发 |
| 安全影响 | 严重 | 导致完全的系统妥协 |
| 检测难度 | 中 | 需要监控异常的进程启动或网络连接 |
| 修复难度 | 低 | 仅需替换 exec() 为安全的沙箱执行方式 |
临时缓解措施
在官方补丁发布前,建议采取以下措施:
- 限制权限:仅授予绝对信任的用户
workspace.tools权限 - 网络隔离:将 Open WebUI 服务置于内部网络,禁止直接互联网访问
- 监控日志:警惕异常的 Python 进程或可疑的网络连接
- 禁用插件功能:如果不需要自定义 Tool,可考虑完全禁用该功能
修复建议
开发者应立即修复 load_tool_module_by_id() 函数:
- 替换
exec()为安全的沙箱环境(如使用restrictedpython或 Docker 沙箱) - 实施代码审查和签名机制
- 添加输入验证和恶意模式检测
- 考虑使用 WebAssembly 或其他受控执行环境替代原生 Python 执行
时间线
- 2026-05-13:发现并验证漏洞
- 2026-05-14:编写 PoC 并完成本地验证
- 2026-05-14:向厂商私下披露(通过公开渠道,因无安全联系方式)
- 2026-05-14:公开披露本漏洞细节(作为 0-Day 漏洞报告)
参考资料
- Open WebUI GitHub 仓库:https://github.com/open-webui/open-webui
- EasyTier 组网方案:https://easytier.cn/(用于安全测试环境搭建)
- 本地验证环境:Docker Desktop on Kali Linux
声明
本漏洞出于安全研究目的发现。作者不对任何未经授权的使用承担责任。请仅在授权的测试环境中复现此漏洞,并遵守当地法律法规。
重要提醒:这是一个真正的 0-Day 漏洞(无任何公开编号)。如果您是 Open WebUI 的管理员,请立即检查您的实例是否暴露在互联网上,并考虑应用临时缓解措施。
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 wakedate 挖洞日志!






