# BentoML 文件上传SSRF漏洞
## 概述
BentoML 是一个用于构建 AI 应用和模型推理服务的 Python 库。在其 1.4.0 至 1.4.19 版本中,文件上传处理系统存在 SSRF(Server Side Request Forgery,服务端请求伪造)漏洞。
## 影响版本
1.4.0 至 1.4.19 版本。
## 细节
漏洞存在于处理 multipart 表单数据和 JSON 请求的组件中。系统会自动从用户提供的 URL 地址下载文件,而未对这些 URL 是否指向内部网络地址、云平台元数据接口或其他敏感资源进行验证。该功能在文档中被明确推荐使用,导致所有使用该特性的部署服务在默认状态下均暴露于 SSRF 攻击风险中。
## 影响
未经身份验证的远程攻击者可利用该漏洞迫使服务器发起任意 HTTP 请求,导致内部资源暴露、元数据泄露,甚至服务被用作请求跳板,对其他系统发起进一步攻击。
是否为 Web 类漏洞: 是
判断理由:
| # | POC 描述 | 源链接 | 神龙链接 |
|---|---|---|---|
| 1 | Ai相关 | https://github.com/rockmelodies/bentoml_CVE-2025-54381 | POC详情 |
| 2 | CVE-2025-54381 | https://github.com/B1ack4sh/Blackash-CVE-2025-54381 | POC详情 |
| 3 | None | https://github.com/IS8123/CVE-2025-54381 | POC详情 |
| 4 | CVE-2025-54381 | https://github.com/Ashwesker/Blackash-CVE-2025-54381 | POC详情 |
| 5 | CVE-2025-54381 | https://github.com/Ashwesker/Ashwesker-CVE-2025-54381 | POC详情 |
标题: SSRF in File Upload Processing · Advisory · bentoml/BentoML · GitHub -- 🔗来源链接
标签:x_refsource_CONFIRM
神龙速读:
### 关键信息
#### 漏洞概述
- **漏洞类型**: SSRF (Server-Side Request Forgery)
- **受影响版本**: >=1.4.0, <1.4.19
- **修复版本**: 1.4.19
- **严重性**: Critical (CVSS v3: 9.9/10)
#### 描述
- **问题**: 在文件上传处理系统中存在SSRF漏洞,允许远程攻击者在未进行身份验证的情况下从服务器发起任意HTTP请求。
- **原因**: 序列化/反序列化处理器对multipart表单数据和JSON请求的处理不当,自动下载用户提供的URL中的文件,而未对内部网络地址进行适当验证。
#### 影响
- 访问AWS/GCP/Azure云元数据服务以窃取凭据
- 枚举并交互内部HTTP服务和API
- 绕过防火墙限制访问内部网络资源
- 从服务器视角执行网络侦察
- 获取HTTP响应数据中披露的敏感信息
- 通过精心设计的请求潜在地利用内部服务
#### 修复建议
- 在两个序列化路径中实施全面的URL验证,添加网络限制检查以防止访问内部/私有网络范围、本地主机和云元数据端点。
- 现有的`is_http_url()`函数应增强为包括白名单验证,而不仅仅是方案检查。
标题: Merge commit from fork · bentoml/BentoML@534c358 · GitHub -- 🔗来源链接
标签:x_refsource_MISC
神龙速读:
### 关键信息
#### 1. 漏洞类型
- **SSRF (Server-Side Request Forgery)**: 新增的 `is_safe_url` 函数旨在防止基本的 SSRF 攻击。
#### 2. 漏洞修复措施
- **URL 安全检查**: 引入了 `is_safe_url` 函数来验证 URL 是否安全,防止下载文件时发生 SSRF。
- **黑名单主机**: 禁止访问特定的本地和私有 IP 地址(如 `localhost`, `127.0.0.1`, `::1`, `169.254.169.254`)。
- **IP 地址解析**: 使用 `socket.getaddrinfo` 解析主机名,并检查解析后的 IP 地址是否为私有、回环或链路本地地址。
#### 3. 相关代码变更
- **新增函数**: `is_safe_url(url: str) -> bool`
- **URL 安全检查逻辑**:
- 检查 URL 方案是否为 `http` 或 `https`。
- 解析主机名并检查是否为空。
- 检查主机名是否在黑名单中。
- 解析主机名对应的 IP 地址,并检查是否为私有、回环或链路本地地址。
#### 4. 其他变更
- **日志记录**: 在下载文件前记录请求的 URL。
- **异常处理**: 增加了对 `ValueError` 和 `TypeError` 的捕获,以确保 URL 解析失败时返回 `False`。
暂无评论