Skip to main content

OpenLLM EUVDEUVD-2026-42271

| CVE-2026-15035 LOW
Improper Neutralization of Special Elements in Output Used by a Downstream Component ('Injection') (CWE-74)
2026-07-08 cna@vuldb.com GHSA-6499-56p8-f7rq
1.9
CVSS 4.0 · Vendor: vuldb
View

Attack ChainAIDerived

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

  1. Access
    Gain local low-privilege access
  2. Delivery
    Identify model repository directory name input surface
  3. Exploit
    Craft argument with shell metacharacters
  4. Execution
    Trigger async_run_command with malicious input
  5. Impact
    Execute injected commands at OpenLLM process privilege level

Vulnerability Assessment

Weakness
CWE
OWASP Top 10:2025
A05:2025 - Injection
ASVS 5.0
V1 - Encoding and Sanitization Input neutralization, injection prevention
Exploitation Conditions

Exploitation requires local system access with at minimum low-privilege credentials (AV:L/PR:L per the CVSS 4.0 vector) - remote exploitation is not possible based on available data. The vulnerable code path is triggered by passing a crafted argument to the async_run_command function in src/openllm/common.py via the Model Repository Directory Name Handler, which implies the attacker must be able to invoke model repository operations within OpenLLM. No user interaction from a third party is required (UI:N). Limiting factors include: the strictly local attack vector (eliminates all remote threat actors), the low-privilege requirement (eliminates unauthenticated scenarios), the Low-bounded impact (C:L/I:L/A:L - no confirmed path to privilege escalation or root access), and the niche deployment context of an ML serving framework. No special non-default configuration is described as required - the vulnerability appears reachable in a standard OpenLLM 0.6.30 deployment by any local low-privilege user who can interact with model management operations.

Impact

Real-world risk is meaningfully constrained by several converging signals. The CVSS 4.0 vector (AV:L/AC:L/AT:N/PR:L/UI:N) confirms the attack requires physical or logical local access with at minimum low-privilege credentials - remote exploitation is not supported by the available data. Impact is bounded to Low across confidentiality, integrity, and availability with no scope change to subsequent systems (SC:N/SI:N/SA:N), indicating the injection does not automatically escalate privileges or pivot to other systems. No EPSS data was provided, and no CISA KEV listing exists, suggesting no confirmed widespread exploitation. The E:P modifier confirms a public proof-of-concept exists, which lowers the skill barrier for local insiders or users who already have system access. The combination of local-only vector, low impact ceiling, and niche deployment footprint makes this a low-priority finding for most organizations, though it warrants patching in multi-tenant or shared ML infrastructure environments where untrusted local users exist.

Exploit ScenarioDerived

A local user with low-privilege access to a system running OpenLLM 0.6.30 crafts a model repository directory name containing shell metacharacters (e.g., semicolons, backticks, or pipe characters) and supplies it as input to an OpenLLM model management operation. The async_run_command function in src/openllm/common.py passes the unsanitized argument to a shell or subprocess context, causing injected commands to execute with the privileges of the OpenLLM process. A public proof-of-concept is available, reducing the technical barrier for any user who already holds local system access.

Monitor Track and reassess. Why: LOW severity (CVSS 0.1-3.9).
No patch listed yet 0.6% exploitation probability (EPSS)

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

Alert me

AnalysisAIv1 – Jul 08, 2026

Command injection in bentoml OpenLLM 0.6.30 allows local low-privilege users to execute arbitrary shell commands by supplying crafted model repository directory name arguments to the async_run_command function in src/openllm/common.py. A public proof-of-concept exploit is available per the CVSS 4.0 E:P modifier and disclosure notes, though no CISA KEV listing exists and the project had not responded to responsible disclosure at the time of reporting. The CVSS 4.0 base score of 1.9 reflects a constrained real-world risk profile due to the strictly local attack vector and limited Low-rated confidentiality, integrity, and availability impact.

RemediationAI

No vendor-released patch has been identified at time of analysis; the OpenLLM project had not responded to the responsible disclosure as of the report date. An upstream pull request addressing the issue is available at https://github.com/bentoml/OpenLLM/pull/1235, but a tagged patched release has not been independently confirmed - this constitutes an upstream fix available via PR/commit only, not a confirmed released version. As compensating controls, operators should restrict local user access to systems running OpenLLM 0.6.30 to trusted personnel only, avoiding multi-tenant or shared environments where untrusted local users could interact with model repository directory name inputs. Avoid passing untrusted or user-supplied strings as model repository directory names to the async_run_command function. Monitor https://github.com/bentoml/OpenLLM/ for a patched release and apply it immediately upon availability.

Affected VersionsENISA

OpenLLM 0.6.30

Affected Packages

pypi bentoml no fix
euvd openllm no fix

Source: OSV (Open Source Vulnerabilities)

Affects your stack

Affects 2 packages in pypi, euvd

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

Technical ContextAI · show details

OpenLLM is an open-source large language model serving framework built on BentoML, designed to deploy and serve LLMs in production. The vulnerability resides in the async_run_command function within src/openllm/common.py, which handles model repository directory names. CWE-74 (Injection) identifies the root cause as insufficient neutralization of user-controlled input before it is passed to a command execution context - most likely an unsanitized shell invocation or subprocess call where directory name strings are interpolated directly. No CPE string was provided in the intelligence data, so affected version scope is limited to what the CVE description specifies (0.6.30). The component's role in parsing repository directory names means the injection surface is reached when a user interacts with model management operations.

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 (vuldb) PRIMARY 1.9 LOW
CVSS:4.0/AV:L/AC:L/AT:N/PR:L/UI:N/VC:L/VI:L/VA:L/SC:N/SI:N/SA:N/E:P
vuln.today AI 5.3 MEDIUM

Local attack requiring low-privilege credentials with no scope change and limited Low-bounded impact across all three pillars.

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

Primary rating from Vendor (vuldb).

CVSS VectorVendor: vuldb

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

DescriptionCVE.org

A vulnerability was found in bentoml OpenLLM 0.6.30. This affects the function async_run_command of the file src/openllm/common.py of the component Model Repository Directory Name Handler. Performing a manipulation of the argument cmd results in command injection. Attacking locally is a requirement. The exploit has been made public and could be used. The project was informed of the problem early through an issue report but has not responded yet.

Threat Intelligence Overview

EPSS Score
0.6%
Top 54% exploitable
Prevalence
Low
niche ML/AI LLM serving framework, limited production footprint
Data Quality
7 sources
Confidence: High
EUVD NVD CVE.org EPSS Vulnrichment GitHub VulDB

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 LOW
CISA KEV No
Public POC No
EPSS 0.6%
Patch available No
Active threat No
Deciding rule
LOW severity (CVSS 0.1-3.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
Defer
Exploitation
Poc
System Exposure· derived
Small
Automatable
No
Human Impact· derived
Low
Technical Impact
Partial

Priority Score

11
Low Medium High Critical
KEV: 0
EPSS: +1
CVSS: +10
PoC: 0
Weaponized: 0
Threat intel: 0
Gov advisory: 0

Attack Technique

OS command injection occurs when an application passes unsanitized user input directly into system shell commands.

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