Open WebUI高危SSRF漏洞分析:CVE-2025-65958深度剖析
漏洞概述
Open WebUI是一个自托管的人工智能平台,设计为完全离线操作。在0.6.37版本之前,存在一个服务器端请求伪造(SSRF)漏洞,允许任何经过身份验证的用户强制服务器向任意URL发出HTTP请求。攻击者可利用此漏洞访问云元数据端点(AWS/GCP/Azure)、扫描内部网络、访问防火墙后的内部服务并窃取敏感信息。除了基本身份验证外,无需特殊权限。该漏洞已在0.6.37版本中修复。
技术细节
漏洞位置
该漏洞存在于/api/v1/retrieval/process/web端点中,位于backend/open_webui/routers/retrieval.py文件的第1758-1767行。
漏洞代码片段:
|
|
漏洞机制
form_data.url参数未经任何验证就直接传递给get_content_from_url()函数。该函数链最终调用网络加载器来获取任意URL:
调用链:
retrieval.py:1767→get_content_from_url(request, form_data.url)retrieval/utils.py:77→get_loader(request, url)retrieval/utils.py:62→get_web_loader(url, ...)或YoutubeLoader(url, ...)
两个加载器都直接获取用户提供的URL,没有任何验证机制。缺失的验证包括:
- 私有IP范围(RFC1918: 10.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16)
- 本地主机地址(127.0.0.0/8)
- 云元数据端点(169.254.169.254, fd00:ec2::254)
- 协议限制(file://, gopher://等)
- 域名白名单
攻击演示(PoC)
前提条件
有效的用户账户(任何角色)
步骤1 - 身份验证
|
|
步骤2 - 基本SSRF测试(外部URL)
|
|
结果: 服务器获取example.com的内容并返回,证明漏洞存在:
|
|
步骤3 - 高级攻击(AWS元数据)
|
|
结果: 如果服务器运行在AWS/GCP/Azure上,将暴露云凭据。
其他攻击示例:
- 内部网络:
{"url":"http://192.168.1.1"} - 本地主机服务:
{"url":"http://localhost:5432"} - 内部API:
{"url":"http://internal-api.local"}
影响分析
受影响对象
所有经过身份验证的用户(无需特殊权限)
攻击能力
1. 云环境入侵
- 通过元数据端点窃取AWS/GCP/Azure凭据
- 后果:完全接管云账户
2. 内部网络访问
- 绕过防火墙访问内部服务(数据库、管理面板、API)
- 端口扫描和内部基础设施映射
- 后果:完全的网络可见性
3. 数据窃取
- 读取内部文档、配置、密钥
- 访问Kubernetes API服务器
- 后果:凭据盗窃、API密钥暴露
安全指标
CVSS评分
- GitHub评分:8.5(高危)
- 向量:CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:C/C:H/I:L/A:N
- NVD评分:7.1(高危)
- 向量:CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:L/A:N
CVSS v3基础指标
- 攻击向量:网络(N)
- 攻击复杂度:低(L)
- 所需权限:低(L)
- 用户交互:无(N)
- 范围:已变更(C)
- 机密性影响:高(H)
- 完整性影响:低(L)
- 可用性影响:无(N)
EPSS分数
- 利用预测评分系统(EPSS):0.035%
- 此分数估计此漏洞在未来30天内被利用的概率
弱点分类
- CWE-ID:CWE-918
- 弱点名称:服务器端请求伪造(SSRF)
- 描述:Web服务器从上游组件接收URL或类似请求并检索此URL的内容,但没有充分确保请求被发送到预期的目的地。
修复与参考
受影响版本
- ≤ 0.6.36
已修复版本
- 0.6.37
参考链接
- GHSA ID:GHSA-c6xv-rcvw-v685
- NVD详情:https://nvd.nist.gov/vuln/detail/CVE-2025-65958
- GitHub修复提交:open-webui/open-webui@02238d3
时间线
- 2025年12月4日:由tjbck发布到open-webui/open-webui
- 2025年12月4日:由美国国家漏洞数据库发布
- 2025年12月4日:发布到GitHub咨询数据库
- 2025年12月4日:审查
- 2025年12月10日:最后更新
缓解建议
- 立即升级到Open WebUI 0.6.37或更高版本
- 如果无法立即升级,考虑暂时禁用
/api/v1/retrieval/process/web端点 - 在网络层面实施适当的出口过滤
- 监控服务器对内部和云元数据端点的异常请求
- 实施最小权限原则,减少已验证用户的数量和权限