| Affected_by_vulnerabilities |
| 0 |
| url |
VCID-4bcc-ergh-83e6 |
| vulnerability_id |
VCID-4bcc-ergh-83e6 |
| summary |
BentoML is a Python library for building online serving systems optimized for AI apps and model inference. Prior to 1.4.8, there was an insecure deserialization in BentoML's runner server. By setting specific headers and parameters in the POST request, it is possible to execute any unauthorized arbitrary code on the server, which will grant the attackers to have the initial access and information disclosure on the server. This vulnerability is fixed in 1.4.8. |
| references |
|
| fixed_packages |
|
| aliases |
CVE-2025-32375, GHSA-7v4r-c989-xh26, PYSEC-2025-32
|
| risk_score |
10.0 |
| exploitability |
2.0 |
| weighted_severity |
9.0 |
| resource_url |
http://public2.vulnerablecode.io/vulnerabilities/VCID-4bcc-ergh-83e6 |
|
| 1 |
| url |
VCID-4wp2-p85j-s7dr |
| vulnerability_id |
VCID-4wp2-p85j-s7dr |
| summary |
BentoML has a Path Traversal via Bentofile Configuration
BentoML's `bentofile.yaml` configuration allows path traversal attacks through multiple file path fields (`description`, `docker.setup_script`, `docker.dockerfile_template`, `conda.environment_yml`). An attacker can craft a malicious bentofile that, when built by a victim, exfiltrates arbitrary files from the filesystem into the bento archive. This enables supply chain attacks where sensitive files (SSH keys, credentials, environment variables) are silently embedded in bentos and exposed when pushed to registries or deployed. |
| references |
|
| fixed_packages |
|
| aliases |
CVE-2026-24123, GHSA-6r62-w2q3-48hf
|
| risk_score |
4.0 |
| exploitability |
0.5 |
| weighted_severity |
8.0 |
| resource_url |
http://public2.vulnerablecode.io/vulnerabilities/VCID-4wp2-p85j-s7dr |
|
| 2 |
| url |
VCID-5mjt-8ze7-h7d9 |
| vulnerability_id |
VCID-5mjt-8ze7-h7d9 |
| summary |
BentoML is a Python library for building online serving systems optimized for AI apps and model inference. Prior to 1.4.39, a malicious bentofile.yaml containing a newline-injected value in envs[*].name produces unquoted RUN directives in the BentoML-generated Dockerfile. When the victim runs bentoml containerize on the imported bento, those RUN directives execute on the host during docker build. This vulnerability is fixed in 1.4.39. |
| references |
|
| fixed_packages |
|
| aliases |
CVE-2026-44346, GHSA-w2pm-x38x-jp44, PYSEC-2026-190
|
| risk_score |
4.0 |
| exploitability |
0.5 |
| weighted_severity |
8.0 |
| resource_url |
http://public2.vulnerablecode.io/vulnerabilities/VCID-5mjt-8ze7-h7d9 |
|
| 3 |
| url |
VCID-bv3z-1yux-kka6 |
| vulnerability_id |
VCID-bv3z-1yux-kka6 |
| summary |
BentoML is a Python library for building online serving systems optimized for AI apps and model inference. Prior to 1.4.38, the Dockerfile generation function generate_containerfile() in src/bentoml/_internal/container/generate.py uses an unsandboxed jinja2.Environment with the jinja2.ext.do extension to render user-provided dockerfile_template files. When a victim imports a malicious bento archive and runs bentoml containerize, attacker-controlled Jinja2 template code executes arbitrary Python directly on the host machine, bypassing all container isolation. This vulnerability is fixed in 1.4.38. |
| references |
|
| fixed_packages |
|
| aliases |
CVE-2026-35044, GHSA-v959-cwq9-7hr6, PYSEC-2026-159
|
| risk_score |
4.3 |
| exploitability |
0.5 |
| weighted_severity |
8.6 |
| resource_url |
http://public2.vulnerablecode.io/vulnerabilities/VCID-bv3z-1yux-kka6 |
|
| 4 |
| url |
VCID-dc3n-kxjc-kbcr |
| vulnerability_id |
VCID-dc3n-kxjc-kbcr |
| summary |
Insecure deserialization in BentoML
An insecure deserialization vulnerability exists in the BentoML framework, allowing remote code execution (RCE) by sending a specially crafted POST request. By exploiting this vulnerability, attackers can execute arbitrary commands on the server hosting the BentoML application. The vulnerability is triggered when a serialized object, crafted to execute OS commands upon deserialization, is sent to any valid BentoML endpoint. This issue poses a significant security risk, enabling attackers to compromise the server and potentially gain unauthorized access or control. |
| references |
|
| fixed_packages |
| 0 |
| url |
pkg:pypi/bentoml@1.2.5 |
| purl |
pkg:pypi/bentoml@1.2.5 |
| is_vulnerable |
true |
| affected_by_vulnerabilities |
| 0 |
| vulnerability |
VCID-4bcc-ergh-83e6 |
|
| 1 |
| vulnerability |
VCID-4wp2-p85j-s7dr |
|
| 2 |
| vulnerability |
VCID-5mjt-8ze7-h7d9 |
|
| 3 |
| vulnerability |
VCID-bv3z-1yux-kka6 |
|
| 4 |
| vulnerability |
VCID-ek5w-sqgd-xkbg |
|
| 5 |
| vulnerability |
VCID-h88c-7wrv-fyg2 |
|
| 6 |
| vulnerability |
VCID-nqwe-qcu8-jkan |
|
| 7 |
| vulnerability |
VCID-rgvz-28ah-d7a8 |
|
| 8 |
| vulnerability |
VCID-twd8-ejvs-6ffv |
|
| 9 |
| vulnerability |
VCID-ujzb-bk9k-7yf2 |
|
| 10 |
| vulnerability |
VCID-wzre-vn34-qqak |
|
| 11 |
| vulnerability |
VCID-z6sb-5n7n-1qgz |
|
| 12 |
| vulnerability |
VCID-zxca-jerw-6ycm |
|
|
| resource_url |
http://public2.vulnerablecode.io/packages/pkg:pypi/bentoml@1.2.5 |
|
|
| aliases |
CVE-2024-2912, GHSA-hvj5-mvw9-93j3
|
| risk_score |
4.5 |
| exploitability |
0.5 |
| weighted_severity |
9.0 |
| resource_url |
http://public2.vulnerablecode.io/vulnerabilities/VCID-dc3n-kxjc-kbcr |
|
| 5 |
| url |
VCID-ek5w-sqgd-xkbg |
| vulnerability_id |
VCID-ek5w-sqgd-xkbg |
| summary |
BentoML Open Redirect vulnerability
An open redirect vulnerability in bentoml/bentoml v1.3.9 allows a remote unauthenticated attacker to redirect users to arbitrary websites via a specially crafted URL. This can be exploited for phishing attacks, malware distribution, and credential theft. |
| references |
|
| fixed_packages |
| 0 |
| url |
pkg:pypi/bentoml@1.3.10 |
| purl |
pkg:pypi/bentoml@1.3.10 |
| is_vulnerable |
true |
| affected_by_vulnerabilities |
| 0 |
| vulnerability |
VCID-3ee4-zba6-gkc1 |
|
| 1 |
| vulnerability |
VCID-4bcc-ergh-83e6 |
|
| 2 |
| vulnerability |
VCID-4wp2-p85j-s7dr |
|
| 3 |
| vulnerability |
VCID-5mjt-8ze7-h7d9 |
|
| 4 |
| vulnerability |
VCID-bv3z-1yux-kka6 |
|
| 5 |
| vulnerability |
VCID-nqwe-qcu8-jkan |
|
| 6 |
| vulnerability |
VCID-rgvz-28ah-d7a8 |
|
| 7 |
| vulnerability |
VCID-twd8-ejvs-6ffv |
|
| 8 |
| vulnerability |
VCID-ujzb-bk9k-7yf2 |
|
| 9 |
| vulnerability |
VCID-wzre-vn34-qqak |
|
| 10 |
| vulnerability |
VCID-z6sb-5n7n-1qgz |
|
| 11 |
| vulnerability |
VCID-zxca-jerw-6ycm |
|
|
| resource_url |
http://public2.vulnerablecode.io/packages/pkg:pypi/bentoml@1.3.10 |
|
|
| aliases |
CVE-2024-12760, GHSA-564p-rx2q-4c8v
|
| risk_score |
3.1 |
| exploitability |
0.5 |
| weighted_severity |
6.2 |
| resource_url |
http://public2.vulnerablecode.io/vulnerabilities/VCID-ek5w-sqgd-xkbg |
|
| 6 |
| url |
VCID-h88c-7wrv-fyg2 |
| vulnerability_id |
VCID-h88c-7wrv-fyg2 |
| summary |
BentoML vulnerable to Uncontrolled Resource Consumption
In bentoml/bentoml version 1.3.9, the `/login` endpoint of the newly integrated Gradio app is vulnerable to a Denial of Service (DoS) attack. This vulnerability can be exploited by appending characters, such as dashes (-), to the end of a multipart boundary in an HTTP request. The server continuously processes each character, leading to excessive resource consumption and rendering the service unavailable. The issue is unauthenticated and does not require any user interaction. |
| references |
|
| fixed_packages |
| 0 |
| url |
pkg:pypi/bentoml@1.3.10 |
| purl |
pkg:pypi/bentoml@1.3.10 |
| is_vulnerable |
true |
| affected_by_vulnerabilities |
| 0 |
| vulnerability |
VCID-3ee4-zba6-gkc1 |
|
| 1 |
| vulnerability |
VCID-4bcc-ergh-83e6 |
|
| 2 |
| vulnerability |
VCID-4wp2-p85j-s7dr |
|
| 3 |
| vulnerability |
VCID-5mjt-8ze7-h7d9 |
|
| 4 |
| vulnerability |
VCID-bv3z-1yux-kka6 |
|
| 5 |
| vulnerability |
VCID-nqwe-qcu8-jkan |
|
| 6 |
| vulnerability |
VCID-rgvz-28ah-d7a8 |
|
| 7 |
| vulnerability |
VCID-twd8-ejvs-6ffv |
|
| 8 |
| vulnerability |
VCID-ujzb-bk9k-7yf2 |
|
| 9 |
| vulnerability |
VCID-wzre-vn34-qqak |
|
| 10 |
| vulnerability |
VCID-z6sb-5n7n-1qgz |
|
| 11 |
| vulnerability |
VCID-zxca-jerw-6ycm |
|
|
| resource_url |
http://public2.vulnerablecode.io/packages/pkg:pypi/bentoml@1.3.10 |
|
|
| aliases |
CVE-2024-12759, GHSA-hh3j-9m59-p8vc
|
| risk_score |
4.0 |
| exploitability |
0.5 |
| weighted_severity |
8.0 |
| resource_url |
http://public2.vulnerablecode.io/vulnerabilities/VCID-h88c-7wrv-fyg2 |
|
| 7 |
| url |
VCID-nqwe-qcu8-jkan |
| vulnerability_id |
VCID-nqwe-qcu8-jkan |
| summary |
BentoML deserialization vulnerability
A deserialization vulnerability exists in BentoML's runner server in bentoml/bentoml versions <=1.3.4.post1. By setting specific parameters, an attacker can execute unauthorized arbitrary code on the server, causing severe harm. The vulnerability is triggered when the args-number parameter is greater than 1, leading to automatic deserialization and arbitrary code execution. |
| references |
|
| fixed_packages |
|
| aliases |
CVE-2024-9070, GHSA-9g44-gwvm-hc44
|
| risk_score |
4.5 |
| exploitability |
0.5 |
| weighted_severity |
9.0 |
| resource_url |
http://public2.vulnerablecode.io/vulnerabilities/VCID-nqwe-qcu8-jkan |
|
| 8 |
| url |
VCID-rgvz-28ah-d7a8 |
| vulnerability_id |
VCID-rgvz-28ah-d7a8 |
| summary |
BentoML has Information Disclosure in `bentoml build` via symlink traversal in the build context
### Summary
BentoML's `bentoml build` packaging workflow follows attacker-controlled symlinks inside the build context and copies the referenced file contents into the generated Bento artifact.
If a victim builds an untrusted repository or other attacker-supplied build context, the attacker can place a symlink such as `loot.txt -> /tmp/outside-marker.txt` or a link to a more sensitive local file. When `bentoml build` runs, BentoML dereferences the symlink and packages the target file contents into the Bento. The leaked file can then propagate further through export, push, or containerization workflows.
### Details
The vulnerable code walks files under the build context and copies each matched entry into the Bento source directory:
```python
for root, _, files in os.walk(ctx_path):
for f in files:
dir_path = os.path.relpath(root, ctx_path)
path = os.path.join(dir_path, f).replace(os.sep, "/")
if specs.includes(path):
src_file = ctx_path.joinpath(path)
dst_file = target_fs.joinpath(dest_path)
shutil.copy(src_file, dst_file)
```
There is no validation that the resolved path of `src_file` remains inside `ctx_path` before `shutil.copy` dereferences the source path. As a result, a repository-controlled symlink can cross the trust boundary from `attacker-controlled repository content` to `developer/CI host filesystem` during the build process.
This is a build-time path traversal / symlink traversal issue in the packaging feature, not a runtime API issue. The resulting Bento may later be exported, pushed to remote storage, or converted into a container image, which amplifies the leakage impact.
### PoC
The issue was verified in WSL against BentoML 1.4.38. The following script reproduces the vulnerability by using a harmless marker file outside the build directory.
```bash
mkdir -p /tmp/bento-symlink-poc
cd /tmp/bento-symlink-poc
printf 'BENTOML_SYMLINK_POC_123456\n' > /tmp/outside-marker.txt
cat > service.py <<'EOF'
import bentoml
@bentoml.service
class Demo:
@bentoml.api
def ping(self, x: str) -> str:
return x
EOF
cat > bentofile.yaml <<'EOF'
service: "service:Demo"
include:
- "service.py"
- "loot.txt"
EOF
ln -s /tmp/outside-marker.txt loot.txt
bentoml build --output tag
bentoml export demo:7pilrpjtlomelwct /tmp/poc.zip
mkdir -p /tmp/poc-unzip
unzip -o /tmp/poc.zip -d /tmp/poc-unzip
find /tmp/poc-unzip -name loot.txt -print
cat /tmp/poc-unzip/**/src/loot.txt 2>/dev/null || \
find /tmp/poc-unzip -path '*/src/loot.txt' -exec cat {} \;
```
- The script creates `/tmp/outside-marker.txt` outside the build context as a stand-in for a sensitive local file.
- It creates a minimal BentoML service and explicitly includes `loot.txt` in `bentofile.yaml`.
- It creates `loot.txt` as a symlink to the external marker file.
<img width="1531" height="648" alt="image" src="https://github.com/user-attachments/assets/1312dcf0-74b0-4fb6-a05d-b68644470d82" />
- It runs `bentoml build`, exports the generated Bento, unzips it, and reads the packaged `src/loot.txt`.
- Successful exploitation is confirmed when the packaged file contains `BENTOML_SYMLINK_POC_123456`, proving that BentoML copied the external file contents rather than keeping only the symlink.
<img width="1315" height="121" alt="image" src="https://github.com/user-attachments/assets/6ed34f51-9b68-4fa9-8a42-011deb84d54e" />
<img width="1697" height="760" alt="image" src="https://github.com/user-attachments/assets/9b8a8ae5-4f06-46b4-9e4a-dee25cc5d203" />
### Impact
An attacker who can cause a developer, release engineer, or CI system to run `bentoml build` on an attacker-controlled repository can exfiltrate local files from the build host into the Bento artifact.
This can expose secrets such as cloud credentials, SSH keys, API tokens, environment files, or other sensitive local configuration. Because Bento artifacts are commonly exported, uploaded, stored, or containerized after build, the leaked file contents can spread beyond the original build machine. |
| references |
|
| fixed_packages |
|
| aliases |
CVE-2026-40610, GHSA-mcfx-4vc6-qgxv
|
| risk_score |
3.1 |
| exploitability |
0.5 |
| weighted_severity |
6.2 |
| resource_url |
http://public2.vulnerablecode.io/vulnerabilities/VCID-rgvz-28ah-d7a8 |
|
| 9 |
| url |
VCID-twd8-ejvs-6ffv |
| vulnerability_id |
VCID-twd8-ejvs-6ffv |
| summary |
BentoML is a Python library for building online serving systems optimized for AI apps and model inference. Prior to 1.4.37, the `docker.system_packages` field in `bentofile.yaml` accepts arbitrary strings that are interpolated directly into Dockerfile `RUN` commands without sanitization. Since `system_packages` is semantically a list of OS package names (data), users do not expect values to be interpreted as shell commands. A malicious `bentofile.yaml` achieves arbitrary command execution during `bentoml containerize` / `docker build`. Version 1.4.37 fixes the issue. |
| references |
|
| fixed_packages |
|
| aliases |
CVE-2026-33744, GHSA-jfjg-vc52-wqvf, PYSEC-2026-157
|
| risk_score |
4.0 |
| exploitability |
0.5 |
| weighted_severity |
8.0 |
| resource_url |
http://public2.vulnerablecode.io/vulnerabilities/VCID-twd8-ejvs-6ffv |
|
| 10 |
| url |
VCID-ujzb-bk9k-7yf2 |
| vulnerability_id |
VCID-ujzb-bk9k-7yf2 |
| summary |
BentoML is a Python library for building online serving systems optimized for AI apps and model inference. Prior to 1.4.39, src/bentoml/_internal/container/frontend/dockerfile/templates/base_v2.j2 interpolates docker.base_image raw with no escaping, newline filtering, or validation. A malicious bento.yaml with a multi-line docker.base_image value smuggles arbitrary Dockerfile directives into the generated Dockerfile, and bentoml containerize then runs docker build which executes the injected RUN directives on the victim host. This vulnerability is fixed in 1.4.39. |
| references |
|
| fixed_packages |
|
| aliases |
CVE-2026-44345, GHSA-78f9-r8mh-4xm2, PYSEC-2026-189
|
| risk_score |
4.0 |
| exploitability |
0.5 |
| weighted_severity |
8.0 |
| resource_url |
http://public2.vulnerablecode.io/vulnerabilities/VCID-ujzb-bk9k-7yf2 |
|
| 11 |
| url |
VCID-wzre-vn34-qqak |
| vulnerability_id |
VCID-wzre-vn34-qqak |
| summary |
BentoML Denial of Service (DoS) via Multipart Boundary
BentoML version v1.3.4post1 is vulnerable to a Denial of Service (DoS) attack. The vulnerability can be exploited by appending characters, such as dashes (-), to the end of a multipart boundary in an HTTP request. This causes the server to continuously process each character, leading to excessive resource consumption and rendering the service unavailable. The issue is unauthenticated and does not require any user interaction, impacting all users of the service. |
| references |
|
| fixed_packages |
|
| aliases |
CVE-2024-9056, GHSA-hw8j-hw49-752c
|
| risk_score |
4.0 |
| exploitability |
0.5 |
| weighted_severity |
8.0 |
| resource_url |
http://public2.vulnerablecode.io/vulnerabilities/VCID-wzre-vn34-qqak |
|
| 12 |
| url |
VCID-z6sb-5n7n-1qgz |
| vulnerability_id |
VCID-z6sb-5n7n-1qgz |
| summary |
BentoML Vulnerable to Arbitrary File Write via Symlink Path Traversal in Tar Extraction
The `safe_extract_tarfile()` function validates that each tar member's path is within the destination directory, but for symlink members it only validates the symlink's own path, **not the symlink's target**. An attacker can create a malicious bento/model tar file containing a symlink pointing outside the extraction directory, followed by a regular file that writes through the symlink, achieving arbitrary file write on the host filesystem. |
| references |
|
| fixed_packages |
|
| aliases |
CVE-2026-27905, GHSA-m6w7-qv66-g3mf
|
| risk_score |
4.0 |
| exploitability |
0.5 |
| weighted_severity |
8.0 |
| resource_url |
http://public2.vulnerablecode.io/vulnerabilities/VCID-z6sb-5n7n-1qgz |
|
| 13 |
| url |
VCID-zxca-jerw-6ycm |
| vulnerability_id |
VCID-zxca-jerw-6ycm |
| summary |
BentoML is a Python library for building online serving systems optimized for AI apps and model inference. Prior to 1.4.38, the cloud deployment path in src/bentoml/_internal/cloud/deployment.py was not included in the fix for CVE-2026-33744. Line 1648 interpolates system_packages directly into a shell command using an f-string without any quoting. The generated script is uploaded to BentoCloud as setup.sh and executed on the cloud build infrastructure during deployment, making this a remote code execution on the CI/CD tier. This vulnerability is fixed in 1.4.38. |
| references |
|
| fixed_packages |
|
| aliases |
CVE-2026-35043, GHSA-fgv4-6jr3-jgfw, PYSEC-2026-158
|
| risk_score |
4.0 |
| exploitability |
0.5 |
| weighted_severity |
8.0 |
| resource_url |
http://public2.vulnerablecode.io/vulnerabilities/VCID-zxca-jerw-6ycm |
|
|