Skip to main content

Xinference EUVDEUVD-2026-64847

| CVE-2026-76841 HIGH
Code Injection (CWE-94)
2026-08-24 VulnCheck GHSA-9cx2-fwcj-qq73
8.7
CVSS 4.0 · Vendor: VulnCheck
View

Attack ChainAIDerived

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

  1. Access
    Authenticate with low-privilege model-launch credential
  2. Delivery
    Register malicious model pointing to attacker-controlled path
  3. Exploit
    Trigger model load via Xinference API
  4. Execution
    AutoTokenizer.from_pretrained reads crafted tokenizer_config.json auto_map
  5. Persist
    Import executes attacker-supplied Python module
  6. Impact
    Arbitrary code runs at worker-process privilege

Vulnerability Assessment

Weakness
CWE
OWASP Top 10:2025
A05:2025 - Injection
ASVS 5.0
V1 - Encoding and Sanitization Code injection prevention, sandbox exec
MITRE ATT&CK

2 techniques across 2 tactics: Execution, Initial Access

The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up.

Exploitation Conditions

Exploitation requires a user account with model-launch (model registration) access on the Xinference server, consistent with CVSS PR:L - fully unauthenticated exploitation is not possible. The attacker must supply an arbitrary model path - either a local filesystem path reachable by the Xinference worker process, or a Hugging Face Hub model ID under attacker control - whose directory contains a crafted tokenizer_config.json with a malicious auto_map entry. No special non-default server configuration beyond allowing user-defined model registration is required; this is a standard Xinference deployment mode. Exploitation is limited by: (1) the requirement for authenticated model-launch access, ruling out anonymous internet-facing attacks; (2) the model path must be accessible to the worker process at load time, either via filesystem or network download; (3) deployments where only trusted administrators can register models reduce exploitability to an insider-threat scenario despite being technically vulnerable under the CVE scope.

Impact

The provided CVSS 4.0 vector (AV:N/AC:L/AT:N/PR:L/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N, score 8.7) reflects network-accessible exploitation requiring only low-privilege authentication, with high impact on confidentiality, integrity, and availability of the vulnerable system - an accurate characterization of the attack surface. No EPSS score was provided, so quantitative exploitation probability cannot be assessed. The vulnerability is not listed in CISA KEV and no public exploit code was referenced in any intelligence source, which meaningfully reduces immediate mass-exploitation risk compared to a KEV-listed issue. Practical risk is moderate-to-high specifically for deployments that expose model registration to non-administrator users; deployments where only trusted operators can register models face substantially lower realized risk despite being technically vulnerable. The PR:L requirement prevents fully unauthenticated exploitation and limits automated scanning-style attacks, but does not protect against malicious insiders, compromised user accounts, or multi-tenant deployments. Attack complexity is low and no user interaction is required once the malicious model is registered, making exploitation straightforward for a credentialed attacker.

Exploit ScenarioDerived

An attacker with a valid Xinference account and model-launch permission constructs a malicious directory containing a tokenizer_config.json with an auto_map entry that references an attacker-supplied Python file containing arbitrary OS commands or a reverse shell payload. The attacker registers this model via the Xinference API supplying the malicious directory as the model path, then triggers model loading; AutoTokenizer.from_pretrained unconditionally imports the attacker's Python module, executing the payload at the privilege level of the Xinference worker process. No public exploit code has been identified at time of analysis, but the mechanism is well-understood and the steps require only standard Hugging Face model format knowledge.

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

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

Alert me

AnalysisAIv1 – Aug 24, 2026

Remote code execution in Xinference (all versions before 2.12.0) allows any user with model-launch access to execute arbitrary Python code on the server at worker-process privilege level. Six model loader call sites across the rerank, embedding, and LLM subsystems hardcode trust_remote_code=True when invoking Hugging Face AutoTokenizer.from_pretrained, meaning a registered model with an attacker-controlled path can ship a malicious tokenizer_config.json whose auto_map entries are imported and executed unconditionally upon model load. No public exploit has been identified at time of analysis and the vulnerability is not listed in CISA KEV, but any Xinference deployment that permits user-defined model registration is exposed without the 2.12.0 patch.

RemediationAI

The primary fix is to upgrade to Xinference version 2.12.0, which introduces the allow_trust_remote_code utility function and gates all six previously unconditional loader call sites behind it. After upgrading, remote code execution via Hugging Face model loading is disabled by default; operators who legitimately need it for bundled built-in models must set the environment variable XINFERENCE_TRUST_REMOTE_CODE=1 (also accepts 'true' or 'yes'). The patch is tracked in GitHub pull request #5027 at https://github.com/xorbitsai/inference/pull/5027 and the patch was confirmed merged per the PR diff. For deployments that cannot immediately upgrade, the most effective compensating control is restricting model registration access to trusted administrators only - revoking untrusted users' ability to register arbitrary model paths eliminates the attacker-controlled input that triggers the vulnerability, at the trade-off of reducing self-service model onboarding. Network-level controls such as restricting API access to the model registration endpoints are a secondary compensating measure but do not eliminate risk from insider threats or compromised credentials.

Affected VersionsENISA

Inference 0 <2.12.0

Affected Packages

euvd inference fix: 2.12.0

Source: OSV (Open Source Vulnerabilities)

Affects your stack

Affects 1 package in euvd

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

Technical ContextAI · show details

Hugging Face's Transformers library supports a trust_remote_code flag that allows model repositories to ship and auto-execute custom Python code during model loading. When enabled, AutoTokenizer.from_pretrained reads the model directory's tokenizer_config.json auto_map field to dynamically import and instantiate custom tokenizer classes - a powerful extensibility feature that becomes a code-injection vector when the model directory is attacker-controlled. Xinference (CPE: cpe:2.3:a:xorbitsai:inference:*:*:*:*:*:*:*:*) hard-coded trust_remote_code=True across six distinct loader call sites: RerankModel._get_tokenizer in xinference/model/rerank/core.py, SentenceTransformerRerankModel.load in xinference/model/rerank/sentence_transformers/core.py, SentenceTransformerEmbeddingModel.load in xinference/model/embedding/sentence_transformers/core.py, FlagEmbeddingModel.load in xinference/model/embedding/flag/core.py, and PytorchModel._sanitize_model_config plus PytorchModel._get_components in xinference/model/llm/transformers/core.py. The root cause class is CWE-94 (Improper Control of Code Generation), where attacker-supplied model directory contents are passed directly into a code-executing import pathway without any validation or gating on model provenance.

Know when Python 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 (VulnCheck) PRIMARY 8.7 HIGH
CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N
vuln.today AI 8.8 HIGH

Network-accessible with low-privilege model-launch credential required (PR:L, AV:N, AC:L); no scope change as impact is confined to the worker process (S:U); full C/I/A impact via arbitrary code execution.

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

Primary rating from Vendor (VulnCheck).

CVSS VectorVendor: VulnCheck

Attack Vector
Network
Attack Complexity
Low
Attack Requirements
None
Privileges Required
Low
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

2
Patch available
Aug 24, 2026 - 14:01 EUVD
CVE Published
Aug 24, 2026 - 13:11 cve.org
HIGH 8.7

DescriptionCVE.org

Xinference loads models with Hugging Face remote code execution unconditionally enabled, and before version 2.12.0 exposes no setting to disable it. Six loader call sites pass trust_remote_code=True as a literal or as an unconditional default: RerankModel._get_tokenizer in xinference/model/rerank/core.py, SentenceTransformerRerankModel.load in xinference/model/rerank/sentence_transformers/core.py, SentenceTransformerEmbeddingModel.load in xinference/model/embedding/sentence_transformers/core.py, FlagEmbeddingModel.load in xinference/model/embedding/flag/core.py, and two sites in xinference/model/llm/transformers/core.py where PytorchModel._sanitize_model_config and PytorchModel._get_components default the value to True. Because a caller with model launch access can register a model whose type is unknown and supply an arbitrary model path, the server reaches _auto_detect_type and then AutoTokenizer.from_pretrained, which imports and executes Python declared by the model directory's own tokenizer_config.json auto_map, running attacker-supplied code with the privileges of the worker process. Version 2.12.0 gates every site behind allow_trust_remote_code and the XINFERENCE_TRUST_REMOTE_CODE setting, permitting remote code only for bundled built-in models.

Executive ViewAI

Why It Matters

Xinference versions prior to 2.12.0 contain a remote code execution vulnerability allowing execution of arbitrary Python code on servers through malicious tokenizer configurations. While no public exploit has been identified at time of analysis, organizations running Xinference with user-defined model registration capabilities face direct risk of system compromise and potential data exfiltration.

Business Impact: High
Compensating Controls

Apply vendor patch.

Threat Intelligence Overview

EPSS Score
0.7%
Top 49% exploitable
Prevalence
Low
niche AI model-serving framework, limited enterprise production footprint
Data Quality
6 sources
Confidence: High

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 No
EPSS 0.7%
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
Scheduled
Exploitation
None
System Exposure· derived
Open
Automatable
No
Human Impact
High
Technical Impact
Total

Priority Score

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

Attack Technique

Code Injection CRITICAL

Code injection occurs when an application accepts user input and passes it directly into a language interpreter or evaluator without proper sanitization.

Remote Code Execution represents the critical moment when an attacker successfully runs arbitrary code on a target system without physical access.

More in Python

View all
CVE-2025-24016 CRITICAL POC
9.9 Feb 10

Wazuh SIEM platform versions 4.4.0 through 4.9.0 contain an unsafe deserialization vulnerability in the DistributedAPI t

CVE-2025-27520 CRITICAL POC
9.8 Apr 04

BentoML version 1.4.2 and earlier contains an unauthenticated remote code execution vulnerability through insecure deser

CVE-2025-2945 CRITICAL POC
9.9 Apr 03

pgAdmin 4 contains critical remote code execution vulnerabilities in the Query Tool download and Cloud Deployment endpoi

CVE-2013-5093 MEDIUM POC
6.8 Sep 27

The renderLocalView function in render/views.py in graphite-web in Graphite 0.9.5 through 0.9.10 uses the pickle Python

CVE-2025-32375 CRITICAL POC
9.8 Apr 09

BentoML is a Python library for building online serving systems optimized for AI apps and model inference. Rated critica

CVE-2014-0224 HIGH POC
7.4 Jun 05

OpenSSL before 0.9.8za, 1.0.0 before 1.0.0m, and 1.0.1 before 1.0.1h does not properly restrict processing of ChangeCiph

CVE-2024-21644 HIGH POC
7.5 Jan 08

pyLoad download manager version prior to 0.5.0b3.dev77 exposes the Flask SECRET_KEY through an unauthenticated endpoint.

CVE-2026-33017 CRITICAL POC
9.3 Mar 17

Langflow (a visual LLM pipeline builder) contains a critical unauthenticated code execution vulnerability (CVE-2026-3301

CVE-2017-9462 HIGH POC
8.8 Jun 06

In Mercurial before 4.1.3, "hg serve --stdio" allows remote authenticated users to launch the Python debugger, and conse

CVE-2026-49869 CRITICAL POC
10.0 Jun 26

Unauthenticated remote code execution affects Kestra OSS (the open-source event-driven orchestration platform) prior to

CVE-2026-39987 CRITICAL POC
9.3 Apr 08

Unauthenticated remote code execution in Marimo ≤0.20.4 allows attackers to execute arbitrary system commands via the `/

CVE-2024-21645 MEDIUM POC
5.3 Jan 08

pyLoad is the free and open-source Download Manager written in pure Python. Rated medium severity (CVSS 5.3), this vulne

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