Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessAuthenticate as internal_user
-
DeliveryCraft API-key request with forged admin credential in metadata
-
ExploitProxy encrypts and returns ciphertext
-
ExecutionReplay ciphertext as bearer token for forged proxy_admin
-
ImpactExecute arbitrary commands via MCP stdio endpoint
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A06:2025 - Insecure Design
ASVS 5.0
V8 - Authorization Least privilege enforcement
MITRE ATT&CK
1 technique across 1 tactic: Privilege Escalation The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up. |
| Exploitation Conditions | Requires an authenticated account with internal_user privileges on the LiteLLM proxy (CVSS PR:L); it is not remote-unauthenticated. For versions after 1.91.0 the flaw is exploitable in the DEFAULT configuration with no extra settings. For versions 1.87.0 through 1.90.x it is exploitable ONLY if EXPERIMENTAL_UI_LOGIN=true was explicitly set. The core condition is that the proxy reuses a single cryptographic context (salt key) for both at-rest secret sealing and session-token minting, so the API-key metadata flow can be abused to encrypt and return an attacker-chosen forged admin credential that is then accepted as a bearer token; host RCE specifically goes through the MCP stdio endpoint. Limiting factors: attacker must already hold a valid internal_user credential, and on 1.87.0-1.90.x the non-default EXPERIMENTAL_UI_LOGIN flag must be enabled. The only complete fix per the vendor is upgrading; the stopgap EXPERIMENTAL_UI_LOGIN=false closes the path but breaks CLI SSO and Claude Code gateway login. |
| Impact | This is a genuine act_now priority, and the signals are internally consistent rather than conflicting. The CVSS 3.1 vector (AV:N/AC:L/PR:L/UI:N/S:C, C:H/I:H/A:H, score 9.9) describes a network-reachable, low-complexity privilege escalation that only requires low privilege (an existing authenticated internal_user account) and crosses an authorization scope boundary (S:C) to reach proxy_admin and host-level remote code execution. The vendor GHSA advisory (GHSA-7hp6-4w63-5g45) confirms the mechanism - a single salt/encryption key is reused both to seal secrets at rest and to mint session/bearer tokens, so a user can have the API-key flow encrypt attacker-chosen metadata (a forged admin credential) and then replay that ciphertext as a bearer token (CWE-269/CWE-345/CWE-441). No EPSS score and no KEV status were supplied in the input, so exploitation-probability and active-exploitation signals are UNKNOWN here - the elevated urgency rests on the act_now decision label, the critical CVSS, the confirmed vendor advisory, and the fact that versions after 1.91.0 are exploitable in the DEFAULT configuration, not on any observed exploitation. The only material caveat is authentication: this is not an unauthenticated internet-wide bug - the attacker must already hold internal_user access to the proxy - which bounds it to insider or post-compromise scenarios while still warranting immediate patching given the RCE outcome. |
| Exploit ScenarioDerived | An authenticated internal_user of a LiteLLM proxy (version after 1.91.0, default config) requests a new API key whose metadata carries a forged administrator credential as the 'secret' value; the proxy encrypts and returns that payload. The attacker replays the returned ciphertext as a bearer token, the proxy decrypts it with the same salt key and trusts the forged proxy_admin identity, then uses the MCP stdio endpoint to execute arbitrary commands on the host. No public exploit code is identified in the provided input, and given AV:N/AC:L the attack is low-complexity for anyone already holding an internal account. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Oct 22, 2026
Privilege escalation to proxy administrator with follow-on arbitrary command execution affects the LiteLLM proxy server (AI Gateway) from 1.87.0 up to the fixed releases 1.100.4, 1.101.3, 1.102.2, 1.103.1 and 1.104.0-rc.2. An authenticated account holding internal_user privileges can submit crafted metadata through the API-key creation flow so the proxy encrypts and returns a forged administrator credential, then replay that ciphertext as a bearer token to be trusted as a proxy admin and run commands via the MCP stdio endpoint. Versions after 1.91.0 are vulnerable in the default configuration, while 1.87.0 through 1.90.x are only exposed when EXPERIMENTAL_UI_LOGIN=true is explicitly set; CVSS 3.1 scores this 9.9 (AV:N/AC:L/PR:L/UI:N/S:C/C:H/I:H/A:H), the priority label is act_now, and no public exploit code or CISA KEV entry was identified at time of analysis.
RemediationAI
Vendor-released patch: upgrade to 1.100.4 for the 1.91.0+ line, 1.101.3 for 1.101.x, 1.102.2 for 1.102.x, 1.103.1 for 1.103.x, or 1.104.0-rc.2 for 1.104.0rc1 pre-releases, released via the tags listed at https://github.com/BerriAI/litellm/releases/tag/v1.100.4 and the referenced commits, with the advisory at https://github.com/BerriAI/litellm/security/advisories/GHSA-7hp6-4w63-5g45. The vendor states that upgrading is the only complete fix. If an immediate upgrade is not possible, setting EXPERIMENTAL_UI_LOGIN=false disables the vulnerable authentication path, at the cost of breaking CLI SSO and Claude Code gateway login; note that this stopgap is the relevant control for 1.87.0 through 1.90.x, where the flag must already have been enabled for exposure, but it is not a substitute for patching on versions after 1.91.0, which are exploitable in the default configuration. Because exploitation requires a pre-existing internal_user credential, tightening who holds internal_user accounts on the proxy reduces exposure while upgrades are staged.
Affected VersionsENISA
Affected Packages
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
The root cause is a cryptography key-separation failure classified as CWE-269 (improper privilege management), with the upstream advisory additionally tagging CWE-345 and CWE-441 because the proxy failed to verify the provenance of a token and acted as a confused deputy between two trust domains. LiteLLM's proxy used one encryption key, the salt key, for two unrelated jobs: sealing secrets at rest (encrypt_value_helper / decrypt_value_helper, AES-256-GCM with a v2:gcm: versioned envelope) and minting UI/CLI session tokens. Because the same key and the same unauthenticated-encryption context covered both domains, any value that came back out of the at-rest sealing path was structurally a valid session token. The attack chain abuses the API-key creation flow, which encrypts attacker-supplied metadata, to have the proxy seal a forged proxy-admin identity; presenting that returned ciphertext as a bearer token causes decryption and acceptance of the embedded admin claims. The fix commit 1d5fdc87fed66b49e1df8cf7d708ad93249eb7d0 introduces separate encrypt_bearer_token/decrypt_bearer_token helpers that prefix tokens with "litellm_login_" and pass that prefix as AES-GCM additional authenticated data, so a sealed at-rest secret can no longer be reinterpreted as a session token of a different kind; decrypt_bearer_token returns None unless the prefix and AAD match, and the diff switches the experimental UI login and CLI JWT paths plus get_key_object_from_ui_hash_key over to the new helpers. New end-to-end coverage asserts that encrypted values read back from management routes are rejected as bearer tokens. The affected CPE is the generic berriai:litellm wildcard, matching the pip package litellm; host compromise specifically requires the MCP stdio endpoint, which admin rights allow reaching.
Know when Litellm 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
AV:N/AC:L/PR:L/UI:N/S:C/C:H/I:H/A:H
Network-reachable with an existing internal_user account (PR:L), straightforward token replay (AC:L), and escalation to admin plus host RCE crosses authorization scope (S:C) with full C/I/A impact.
Primary rating from Vendor (GitHub_M).
CVSS VectorVendor: GitHub_M
Lifecycle Timeline
2DescriptionCVE.org
LiteLLM is a proxy server (AI Gateway) to call LLM APIs in OpenAI (or native) format. From 1.87.0 until 1.100.4, 1.101.3, 1.102.2, 1.103.1, and 1.104.0-rc.2, the proxy reuses one cryptographic context for at-rest secrets and session tokens, allowing an authenticated internal user to have crafted metadata containing a forged administrator credential encrypted and returned by the API-key flow. Replaying that ciphertext as a bearer token causes the proxy to trust the forged proxy administrator identity, permitting administrative access and arbitrary commands through the MCP stdio endpoint. Versions 1.87.0 through 1.90.x require EXPERIMENTAL_UI_LOGIN to be enabled, while versions after 1.91.0 are exploitable in the default configuration. This issue was fixed in LiteLLM 1.100.4, 1.101.3, 1.102.2, 1.103.1, and 1.104.0-rc.2.
Technical POC Analysis
The advisory identifies CWE-269 Improper Privilege Management as the primary weakness, with secondary CWE-345 and CWE-441.
Full technical POC analysis - root cause, step-by-step exploitation and patch breakdown - is part of the Pro and Business plans.
Executive ViewAI
CVE-2026-114612 is a critical privilege escalation vulnerability in the LiteLLM AI Gateway that allows any authenticated low-privileged user to gain full administrative control and execute arbitrary commands on the proxy server. This puts all AI services and data managed by the gateway at risk, potentially leading to data breaches or service disruption. Leadership should prioritize immediate remediation because exploitation could result in full compromise of the AI infrastructure.
Apply vendor patch. Until patched, enforce least privilege by limiting internal_user accounts, disable EXPERIMENTAL_UI_LOGIN if not required, and monitor API-key creation and MCP stdio activity for signs of abuse.
Threat Intelligence Overview
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.
What every action level means
SSVC AssessmentENISA
Priority Score
Attack Technique
Privilege escalation occurs when an attacker leverages flaws in access control mechanisms to gain permissions beyond what they were originally granted.
Remote command execution in LiteLLM proxy server versions 1.74.2 through 1.83.6 allows any authenticated user to execute
SQL injection in LiteLLM proxy server versions 1.81.16 through 1.83.6 allows unauthenticated remote attackers to read an
Authentication bypass in LiteLLM (BerriAI) proxy/AI Gateway before 1.84.0 lets a remote unauthenticated attacker reach M
BerriAI/litellm is vulnerable to Server-Side Template Injection (SSTI) via the `/completions` endpoint. Rated critical s
Remote code execution in BerriAI LiteLLM (all versions through 2026-04-08) enables authenticated attackers to execute ar
BerriAI's litellm, in its latest version, is vulnerable to arbitrary file deletion due to improper input validation on t
Authentication bypass in the LiteLLM proxy lets any party who already holds a valid JWT issued by the configured externa
In berriai/litellm version v1.52.1, an issue in proxy_server.py causes the leakage of Langfuse API keys when an error oc
In berriai/litellm before version 1.44.12, the `litellm/litellm_core_utils/litellm_logging.py` file contains a vulnerabi
A Server-Side Request Forgery (SSRF) vulnerability exists in berriai/litellm version 1.38.10. Rated high severity (CVSS
An SQL Injection vulnerability exists in the berriai/litellm repository, specifically within the `/global/spend/logs` en
A code injection vulnerability exists in the berriai/litellm application, version 1.34.6, due to the use of unvalidated
EUVD-2026-108277
NVD
CVE.org
GitHub
Exploit-DB