Skip to main content

BentoML CVE-2026-27905

HIGH
Improper Link Resolution Before File Access (CWE-59)
2026-03-03 security-advisories@github.com GHSA-m6w7-qv66-g3mf
8.6
CVSS 4.0 · Vendor: github
View

Attack ChainAIDerived

Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain

  1. Access
    Craft malicious bento/model tar with escaping symlink
  2. Delivery
    Publish or deliver artifact to victim
  3. Exploit
    Victim pulls and extracts via BentoML
  4. Execution
    open() follows symlink target on write
  5. Impact
    Arbitrary file write on host filesystem

Vulnerability Assessment

Weakness
CWE
OWASP Top 10:2025
A01:2025 - Broken Access Control
ASVS 5.0
V5 - File Handling Symlink resolution safety
Exploitation Conditions

Exploitation requires the victim to pull/import and extract an attacker-crafted bento or model tar through BentoML's extraction routine safe_extract_tarfile() (invoked from cloud/bento.py:542 and cloud/model.py:504); the malicious archive must contain a symlink whose target escapes the destination directory followed by a regular file written through it. This affects all versions prior to 1.4.36 in their default behavior - no special configuration toggle is needed. The key limiting factor is that the attacker does not need credentials on the target host (PR:N) but DOES need the victim to ingest the malicious artifact, so exploitation hinges on a supply-chain/social delivery step rather than direct remote access; it is not reachable against an idle BentoML installation that never imports an untrusted bento/model.

Impact

Signals are mixed and point to a real-but-not-urgent issue. The flaw is a genuine arbitrary file write (CWE-59 symlink following) confirmed by the vendor's GHSA advisory and fixed in 1.4.36, and public exploit code exists (a working PoC is embedded in the GHSA). However, EPSS is only 0.01% (0th percentile) and the CVE is NOT in CISA KEV, indicating no evidence of widespread automated exploitation - consistent with a supply-chain-style flaw that requires a victim to import an attacker-crafted bento/model artifact rather than a remotely sprayable bug. The two CVSS representations conflict on the delivery vector and must be reconciled: the NVD CVSS 4.0 vector states AV:L/UI:N (local, no user interaction) while the vendor GHSA CVSS 3.1 vector states AV:N/UI:R (network-delivered artifact requiring user action to extract). The AV:L framing is misleading - the realistic path is an attacker-supplied tar pulled from a registry/peer and then extracted, which is better modeled as AV:N/UI:R; verify intended threat model with the vendor. Both representations agree exploitation needs no privileges on the target (PR:N) and that integrity impact is high. Net: moderate real-world priority - patch promptly where BentoML ingests untrusted bentos/models, but this is more a targeted/supply-chain risk than a mass-exploited one given low EPSS and no KEV listing.

Exploit ScenarioDerived

An attacker publishes or shares a malicious bento/model packaged as a tar containing a symlink that points outside the extraction directory (e.g. to /etc or a Python site-packages path), followed by a regular file that writes through that symlink. When a victim pulls and extracts the artifact via BentoML's cloud bento/model import path, open() follows the symlink and writes attacker-controlled content to an arbitrary host location, which can escalate to code execution by overwriting a config or script. A working proof-of-concept is published in the GHSA advisory.

This Week Schedule remediation this week. Why: HIGH severity (CVSS 7.0-8.9).
Patch available 0.0% exploitation probability (EPSS)

Get an e-mail when this CVE is exploited, patched or re-scored. Free account.

Alert me

AnalysisAIv2 – Oct 07, 2026

Arbitrary file write in BentoML allows an attacker-supplied bento or model tar archive to escape the extraction directory and overwrite files anywhere the BentoML process can write, affecting all versions prior to 1.4.36. The victim must import or pull the malicious artifact (CVE CVSS 3.1 base 8.1: AV:N/AC:L/PR:N/UI:R/S:U/C:N/I:H/A:H), so no credentials or direct network access to the host are needed, but the supply-chain ingestion step is mandatory - an idle installation that never processes an untrusted bento or model is not exposed. Publicly available exploit code exists, exploit-maturity scoring is minimal (EPSS 0.01%, 0th percentile) and there is no indication of confirmed active exploitation (no CISA KEV listing); the issue is real but not urgent, and a vendor patch exists in 1.4.36.

Earlier versions of this analysis (1)
v1 Mar 12, 2026 - 22:05 CVSS 7.8

BentoML is a Python library for building online serving systems optimized for AI apps and model inference. [CVSS 7.8 HIGH]

RemediationAI

Upgrade to BentoML 1.4.36, which is the vendor-released patch incorporating upstream commit https://github.com/bentoml/BentoML/commit/4e0eb007765ac04c7924220d643f264715cc9670 and documented in GHSA-m6w7-qv66-g3mf; there is no backport path for older lines, so pinning bentoml>=1.4.36 is the primary fix. If immediate upgrade is impossible, treat all bento/model tar artifacts as untrusted input: perform extraction inside a disposable container or sandbox with a read-only or narrowly scoped writable mount so a symlink escape cannot reach sensitive paths, run the BentoML process as an unprivileged account whose filesystem write scope excludes /etc, /root, and application secrets, and pre-screen archives (for example with tar -tvf or a Python script walking tarfile members) rejecting any SYMTYPE/LNKTYPE member whose linkname resolves outside the extraction root - accepting that this is a manual gate that will block legitimate archives containing internal relative symlinks and can be bypassed by archive format quirks if not applied consistently. Note that the exploit requires the victim to ingest an attacker-crafted archive, so tightening provenance of remote bento/model sources and requiring signed or checksummed artifacts materially reduces exposure; monitoring for unexpected writes or symlink creation during extraction gives detection coverage. Because exploit code is publicly available, prioritize the upgrade for any environment that routinely pulls third-party bentos or models, while noting the low EPSS (0.01%) and absence of confirmed in-the-wild exploitation keep this below emergency patching thresholds.

Affected Packages

pypi bentoml fix: 1.4.36

Source: OSV (Open Source Vulnerabilities)

Affects your stack

Affects 1 package in pypi

Checking this CVE against your own stacks and servers is part of the Basic plan and up.

Technical ContextAI · show details

The flaw is a classic link-following (CWE-59) defect inside BentoML's tar handling helper safe_extract_tarfile() in src/bentoml/_internal/utils/filesystem.py, which is reached from the cloud artifact import paths src/bentoml/_internal/cloud/bento.py:542 and src/bentoml/_internal/cloud/model.py:504. The original code validated each tar member with os.path.abspath(os.path.join(destination, fn)) and Path(path).is_relative_to(destination), but because os.path.abspath only normalizes '.' and '..' and does not resolve symlinks, a member of type SYMTYPE whose own path is inside the destination could carry a linkname pointing outside it, for example to /etc. The extraction loop then created that symlink verbatim via tar._extract_member() and, on a subsequent regular-file member, opened the destination path with open(path, 'wb'), which transparently follows the symlink and writes through it to the attacker-chosen target. The upstream fix (commit 4e0eb007) resolves the destination with os.path.realpath, normalizes and validates each symlink's target against the real destination before creation, and re-checks os.path.realpath(path) before opening a file for writing, closing both the symlink-creation and write-through halves of the chain. BentoML is a Python framework for packaging and serving AI models; the archive is the natural distribution format, so this is fundamentally a software supply-chain weakness in model/bento ingestion rather than a remotely reachable service flaw.

Know when Bentoml gets its next vulnerability

  • Watch products and get an email when something new is published
  • Check this CVE against your own stack and servers
  • Exploit and PoC references, threat intelligence from 22 sources

No credit card · 7-day full trial

Severity by source

Vendor (github) PRIMARY 8.6 HIGH
CVSS:4.0/AV:L/AC:L/AT:N/PR:N/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N
vuln.today AI 8.1 HIGH

Malicious artifact is delivered over network and must be imported by the victim (AV:N/UI:R, PR:N); arbitrary file write gives high integrity/availability impact but no direct read, so C:N.

3.1 AV:N/AC:L/PR:N/UI:R/S:U/C:N/I:H/A:H
4.0 AV:N/AC:L/AT:N/PR:N/UI:P/VC:N/VI:H/VA:H/SC:N/SI:N/SA:N

Primary rating from Vendor (github).

CVSS VectorVendor: github

Attack Vector
Local
Attack Complexity
Low
Attack Requirements
None
Privileges Required
None
User Interaction
None
Vulnerable system: Confidentiality
High
Vulnerable system: Integrity
High
Vulnerable system: Availability
High
Subsequent system: Confidentiality
None
Subsequent system: Integrity
None
Subsequent system: Availability
None

Lifecycle Timeline

5
Analysis Updated
Oct 07, 2026 - 08:30 vuln.today
v2 - CVSS changed
CVSS changed
Oct 07, 2026 - 08:22 NVD
7.8 (HIGH) 8.6 (HIGH)
PoC Detected
Mar 05, 2026 - 21:04 vuln.today
Public exploit code
Patch released
Mar 05, 2026 - 21:04 nvd
Patch available
CVE Published
Mar 03, 2026 - 23:15 nvd
HIGH 7.8

DescriptionCVE.org

BentoML is a Python library for building online serving systems optimized for AI apps and model inference. Prior to 1.4.36, 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. This vulnerability is fixed in 1.4.36.

Executive ViewAI

Why It Matters

BentoML versions prior to 1.4.36 are affected by a high-severity arbitrary file write that can be triggered when a user imports or pulls a malicious bento or model archive, enabling files to be overwritten anywhere the BentoML process can write. Organizations that use BentoML in ML supply chains to ingest third-party or untrusted artifacts are exposed to host compromise, data corruption, or service disruption, while idle installations that never process untrusted artifacts are not exposed. Publicly available exploit code exists, so security leadership should prioritize patching to 1.4.36 and tightening artifact ingestion controls even though EPSS is low and no CISA KEV listing is present.

Business Impact: High
Compensating Controls

Apply vendor patch.

Threat Intelligence Overview

EPSS Score
0.0%
Top 100% exploitable
Prevalence
Medium
popular Python ML model-serving library, limited to AI/ML deployment teams
Exploit
POC
Public exploit code exists
Data Quality
4 sources
Confidence: Medium

How this decision was reached

The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.

SignalValue
Severity HIGH
CISA KEV No
Public POC Yes
EPSS 0.0%
Patch available Yes
Active threat No
Deciding rule
HIGH severity (CVSS 7.0-8.9)
What every action level means
Emergency Immediate action required. Criteria: CRITICAL + in CISA KEV (actively exploited) without patch, OR CRITICAL + EPSS > 30% without patch, OR CRITICAL + active threat signals without patch.
Act Now Prioritize within 24-48h. Criteria: in KEV with patch available, OR CRITICAL + public POC, OR HIGH + EPSS > 10%, OR CRITICAL + active threat, OR any CRITICAL severity.
This Week Schedule remediation this week. Criteria: HIGH severity (CVSS 7.0-8.9). Patch within normal change window.
This Month Plan within 30 days. Criteria: MEDIUM severity (CVSS 4.0-6.9), lower exploitation probability. Include in regular patch cycle.
Monitor Track and reassess. Criteria: LOW severity (CVSS 0.1-3.9), minimal exploitation risk. No immediate action needed.

SSVC AssessmentENISA

SSVC Decision· derived
Scheduled
Exploitation· derived
Poc
System Exposure· derived
Small
Automatable· derived
No
Human Impact
High

Priority Score

63
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +43
PoC: +20
Weaponized: 0
Threat intel: 0
Gov advisory: 0

Affected Products (CPE)CVE.org

cpe:2.3:a:bentoml:bentoml:*:*:*:*:*:*:*:*

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy