CVE-2026-35044BentoML 在 1.4.38 之前的版本中,其 Dockerfile 生成函数使用了未沙箱化的 Jinja2 环境来渲染用户提供的模板文件。当受害者导入包含恶意模板的 bento 归档并运行容器化命令时,攻击者可利用此漏洞在宿主机上执行任意 Python 代码,从而完全绕过容器的隔离机制。
漏洞核心位于 `src/bentoml/_internal/container/generate.py` 文件的 `generate_containerfile()` 函数。该函数错误地使用了未设置沙箱的 `jinja2.Environment`,并加载了 `jinja2.ext.do` 扩展,直接对用户提供的 `dockerfile_template` 进行渲染。攻击者可以精心构造一个 Bento 归档包,其中包含恶意的 Jinja2 模板代码。当受害者执行 `bentoml containerize` 命令处理该归档时,恶意模板在宿主机上下文中被解析。由于 Jinja2 支持执行 Python 表达式,攻击者可以利用 `do` 扩展或标准表达式执行任意系统命令。此攻击发生在容器构建之前的宿主机环境中,因此容器隔离机制无法防御此攻击。