LiteLLM Vulnerability GHSA-7hp6-4w63-5g45: Check Versions and Harden the Gateway

Editorial note: The information in this article was compiled to the best of our knowledge at the time of publication. Technical details, prices, versions, licensing terms, and external content may change. Please verify the information provided independently, particularly before making business-critical or security-related decisions. This article does not replace individual professional, legal, or tax advice.

Running LiteLLM in your organisation? WZ-IT checks, updates and hardens LiteLLM gateways and takes over operation with CVE monitoring, see Managed LiteLLM and CVE monitoring. Book a meeting
On 30 September 2026, BerriAI published a security advisory for the LiteLLM proxy: GHSA-7hp6-4w63-5g45. An authenticated user with the internal_user role can escalate to proxy_admin and then execute arbitrary commands on the host through the MCP stdio endpoint. GitHub rates the flaw CVSS 9.9.
In many organisations, LiteLLM is the central access layer for language models: it bundles local models and provider APIs behind an OpenAI-compatible endpoint, manages keys and budgets, and holds the credentials of every connected provider for that purpose. Whoever takes over the gateway gains access to exactly those credentials. What LiteLLM does and where it sits in the stack is explained in What is LiteLLM?.
This article summarises how the flaw works, which versions are affected and patched, what the workaround costs in functionality, and which checklist secures a LiteLLM gateway beyond this case. All version information reflects 1 October 2026.
Table of Contents
- The vulnerability at a glance
- How the privilege escalation works
- Affected and patched versions
- Workaround if the update has to wait
- What to check after possible misuse
- LiteLLM vulnerabilities in 2026
- Checklist: hardening a LiteLLM gateway
- Our approach at WZ-IT
- Further guides
The vulnerability at a glance
| Attribute | Value |
|---|---|
| Identifier | GHSA-7hp6-4w63-5g45 |
| CVE | none (as of 1 October 2026) |
| Title | Privilege Escalation to Proxy Admin via Cross-Domain Reuse of the Salt Key |
| Published | 30 September 2026 |
| Severity | critical, CVSS 3.1 9.9 |
| CVSS vector | AV:N/AC:L/PR:L/UI:N/S:C/C:H/I:H/A:H |
| CWE | CWE-269, CWE-345, CWE-441 |
| Prerequisite | authenticated account with the internal_user role |
| Impact | proxy_admin privileges, command execution on the host via MCP stdio |
| Package | litellm (PyPI), proxy deployments |
| Reported by | Hoa X. Nguyen (OPSWAT Unit 515) |
Source: GitHub Security Advisory GHSA-7hp6-4w63-5g45.
The vector describes a flaw that is exploitable over the network without user interaction and requires only low privileges. S:C (scope changed) means the impact extends beyond the attacked component: a user account in the gateway turns into code execution on the server.
How the privilege escalation works
The core of the problem is one key with two jobs. According to the advisory, LiteLLM uses the same key to encrypt stored secrets and to mint session tokens. The documentation calls this key LITELLM_SALT_KEY; among other things it encrypts the model provider credentials stored in the database (LiteLLM, Production Best Practices).
The sequence according to the advisory:
- The attacker signs in with an account that has the
internal_userrole. - They request a new API key and place a forged admin credential in a metadata field as the supposed secret.
- The proxy encrypts this value with the shared key and returns the result.
- The attacker presents the encrypted value as a bearer token.
- The proxy decrypts the token, trusts the forged admin identity and grants full administrative access.
- As
proxy_admin, the attacker can execute commands on the host through the MCP stdio endpoint.
This is a classic confused deputy pattern (CWE-441): the proxy becomes the tool that produces a valid token for the attacker. Nothing in the encryption itself is broken. The weakness is that data from two trust domains is protected with the same key and the proxy does not distinguish what a decrypted value was meant for.
proxy_admin is the highest role in LiteLLM, with full control over organisations, teams and users. internal_user can sign in, view their own keys and, depending on team permissions, create their own keys (LiteLLM, Access Control). The gap between these two roles is what the flaw bridges.
The MCP stdio transport starts a local process using command and args from the configuration (LiteLLM, MCP). That is intended for MCP servers, but it turns any ability to add or test stdio servers into command execution on the gateway host. Why MCP servers should generally be treated as code with their own privileges is covered in the article on the Model Context Protocol in organisations.
Affected and patched versions
The advisory distinguishes two cases: from version 1.91.0, the vulnerable path is active in the default configuration. In versions 1.87.0 to 1.90.x it is only active if EXPERIMENTAL_UI_LOGIN=true was explicitly set.
Affected range (PyPI litellm) |
Patched version | Release |
|---|---|---|
| 1.87.0 to 1.90.x | only affected with EXPERIMENTAL_UI_LOGIN=true; no separate fix in these lines |
- |
| 1.91.0 to below 1.100.4 | 1.100.4 | 30 Sep 2026 |
| 1.101.0 to below 1.101.3 | 1.101.3 | 30 Sep 2026 |
| 1.102.0 to below 1.102.2 | 1.102.2 | 30 Sep 2026 |
| 1.103.0 to below 1.103.1 | 1.103.1 | 30 Sep 2026 |
| 1.104.0rc1 | 1.104.0rc2 (pre-release) | 30 Sep 2026 |
Sources: version ranges from the advisory, release dates from the LiteLLM releases. On 1 October 2026, 1.101.4 and 1.103.2 followed as further releases in these lines.
Three points that are easy to miss in practice:
- No backports for 1.91 to 1.99. Anyone running a version from these lines will not find a fix there. The affected range extends to below 1.100.4. This also applies to lines that received security updates for other flaws in August 2026.
- Docker images follow the same numbering. The official images are published at
ghcr.io/berriai/litellmwith tags such asv1.100.4. A tag such asmain-latestsays little about which version is actually running. - Checking the version. The running version is shown by
pip show litellmin the Python environment or by thelitellm_versionfield in the response of/health/readiness. For containers, the image tag actually started is what counts, not the one intended in a compose file.
Versions before 1.87.0 are not affected by this flaw. They are, however, affected by other, partly actively exploited flaws (see LiteLLM vulnerabilities in 2026) and are not a safe state.
A second advisory appeared on the same day: GHSA-hhww-mrg2-969h, a reflected cross-site scripting flaw in /sso/debug/callback (CVSS 6.8) in versions 1.65.5 to below 1.85.0. Updating to one of the patched versions above also resolves it.
Workaround if the update has to wait
The advisory names one workaround: set the environment variable EXPERIMENTAL_UI_LOGIN=false. This disables the vulnerable authentication path. In LiteLLM's token check, this path is only skipped when the variable is explicitly set to false (litellm/proxy/auth/user_api_key_auth.py). A missing entry is not enough.
| Aspect | Effect of EXPERIMENTAL_UI_LOGIN=false |
|---|---|
| Vulnerable authentication path | disabled |
| CLI SSO login | stops working |
| Claude Code gateway login | stops working |
API access with virtual keys (sk-...) |
remains possible, separate authentication path |
| Replacement for the update | no |
Teams that connect developer tools through the gateway should therefore plan the workaround as a short bridge: set it, restart the proxy, inform users, test and roll out the update, then reassess the variable deliberately.
What to check after possible misuse
The update closes the flaw but does not undo exploitation that has already happened. Whether it happened cannot be answered across the board. The review depends on who had access to accounts with the internal_user role and how long an affected version was running.
| Check | What to look for |
|---|---|
| Users and roles | new or promoted proxy_admin accounts, unknown teams or organisations |
| API keys | keys with unusual metadata, new keys with high budgets or without model restrictions |
| MCP servers | newly added or modified stdio servers, unknown command entries |
| Host | unknown processes, files and outbound connections of the proxy container or host |
| Provider accounts | unusual consumption or access in the model providers' consoles |
| Logs | access to admin endpoints by accounts that are not admins |
If misuse cannot be ruled out, clean-up includes:
- Rotate provider keys. A
proxy_admincan use the stored model credentials, and command execution on the host also gives access to environment variables. - Rotate the master key.
LITELLM_MASTER_KEYis the admin credential for the API and the UI; LiteLLM documents a dedicated rotation flow for it (Production Best Practices). - Change the salt key only with a plan. The documentation warns that changing
LITELLM_SALT_KEYmakes already encrypted credentials unreadable. A change therefore means re-entering all model credentials. - Rebuild the host. If there are signs of command execution, a cleanly rebuilt container or host is more reliable than hunting for every single change.
Whether an incident has to be reported under GDPR or NIS2 depends on which data passed through the gateway and which systems were reachable from the host.
LiteLLM vulnerabilities in 2026
GHSA-7hp6-4w63-5g45 is not the first critical LiteLLM flaw this year. Three earlier flaws are listed in the Known Exploited Vulnerabilities catalog of the US agency CISA, meaning exploitation has been confirmed.
| Identifier | Type | Patched from | In CISA KEV since |
|---|---|---|---|
| CVE-2026-42208 (GHSA-r75f-5x8p-qvmc) | SQL injection in API key verification | 1.83.7 | 8 May 2026 |
| CVE-2026-42271 (GHSA-v4p8-mg3p-g94g) | command execution via MCP stdio test endpoints, including with an internal_user key |
1.83.7 | 8 Jun 2026 |
| CVE-2026-59822 (GHSA-7488-6r32-c95q) | MCP authentication bypass via OAuth2 passthrough | 1.84.0 | 2 Sep 2026 |
As of 1 October 2026; BerriAI maintains the full list under Security Advisories. In addition, there was the supply chain incident of 24 March 2026: the PyPI packages litellm 1.82.7 and 1.82.8 were compromised for around 40 minutes, triggered by a compromised Trivy dependency in the CI pipeline. According to BerriAI, the official Docker image was not affected (LiteLLM, Security Update March 2026).
Two conclusions for operations follow from this:
- MCP is the recurring attack surface. Two of the three exploited flaws and the current flaw involve MCP. Disabling MCP in the gateway when it is not needed reduces the attack surface considerably.
- The release cadence is high. LiteLLM publishes several releases per week and maintains several stable lines in parallel. Without a fixed update process, a gateway drops out of the patched range within a few weeks. How structured vulnerability monitoring for self-hosted software is set up is described in CVE monitoring for self-hosted software.
The Ollama flaw Bleeding Llama showed a similar pattern in spring: self-hosted AI components are only as secure as their operation. For n8n, which is often combined with LiteLLM, the article on the n8n security update September 2026 summarises the current advisories.
Checklist: hardening a LiteLLM gateway
The following checklist goes beyond the current flaw. It is aimed at operators who use LiteLLM as the central gateway for several teams or applications.
| Area | Measure | Relation to the current flaw |
|---|---|---|
| Version | pin the version (image tag or package version), apply updates deliberately after testing | direct: update to a patched version |
| Version | verify the Docker image with cosign against the published key before starting (release notes) | supply chain |
| Monitoring | track advisories by GHSA identifier, not only by CVE | current flaw has no CVE |
| Network | do not expose the proxy directly to the internet; allow access only from defined network segments or via VPN | narrows the circle of possible attackers |
| Network | make the admin UI and management endpoints reachable only from the admin network; DISABLE_ADMIN_UI=true if the UI is not needed |
admin paths |
| Network | restrict the gateway's outbound connections to the model providers in use | makes data exfiltration after takeover harder |
| Roles | keep proxy_admin accounts to a minimum; do not create internal_user accounts for people without a need |
prerequisite of the attack |
| Roles | give applications virtual keys with model and budget limits instead of user accounts | limits the damage of individual keys |
| Keys | master key and salt key separate, randomly generated and stored in a secret manager; do not change the salt key after the first model is added | protection of stored credentials |
| MCP | disable MCP features if unused; add stdio servers only via configuration file and with approval | command execution via MCP stdio |
| Host | run the proxy as an unprivileged user in a container, without the Docker socket, with minimal environment variables | limits the consequences of command execution |
| Logging | log usage, admin actions and key changes centrally, for example with Langfuse for model calls | detection |
| Experimental | set experimental switches such as EXPERIMENTAL_UI_LOGIN only deliberately and document them |
root cause of the flaw |
On the network segment: the common assumption that a gateway on the internal network is protected does not hold for this flaw. The attacker needs a valid user account, so they usually come from the internal network or through a compromised account. Network segmentation reduces the attack surface but replaces neither the update nor tight role assignment.
On MCP: an MCP server using the stdio transport is a process on the gateway host. Teams that provide MCP tools for agents should rather run them as separate services with HTTP transport in a separate segment and only allow them in the gateway, instead of starting arbitrary commands on the gateway itself. How agents work with limited permissions and approval steps is described in AI agents: permissions and approvals.
On provider choice: the gateway is also where you define which models are reachable at all. How European model APIs and your own inference are combined through LiteLLM is shown in the comparison of European LLM APIs.
Our approach at WZ-IT
WZ-IT operates LiteLLM as Managed LiteLLM with TLS, network segmentation, monitoring and fixed operating processes. For an advisory such as GHSA-7hp6-4w63-5g45, the work runs in five steps:
- Determine exposure. Record the running version, image tag, environment variables and active login paths and compare them against the version ranges in the advisory.
- Mitigate until the update. If needed, set
EXPERIMENTAL_UI_LOGIN=falseand coordinate the effect on CLI logins with users. - Apply the update. Check the patched version in a test environment, test routing, fallbacks, budgets and integrations, then roll it out to production.
- Look for traces. Review roles, keys, MCP entries and logs for anomalies; rotate keys in a controlled way if misuse is suspected.
- Harden and monitor continuously. Implement the checklist above and add the gateway to CVE monitoring, which evaluates vendor security advisories in addition to the NVD.
Alongside your own inference on the AI Cube or a managed GPU server from WZ-IT, the gateway can also connect European model APIs. Support, consulting and implementation by WZ-IT.
Further guides
- What is LiteLLM?, the role and structure of the gateway in the LLM stack.
- Model Context Protocol in organisations, how MCP works and which risks stdio servers bring.
- n8n security update September 2026, version matrix and hardening for n8n.
- Bleeding Llama (CVE-2026-7482), what the Ollama flaw shows about operating local AI.
- CVE monitoring for self-hosted software, how vulnerabilities are tracked in a structured way.
- European LLM APIs compared, combining providers behind one gateway.
- Langfuse for LLM observability, logging model calls in a traceable way.
- AI solutions from WZ-IT, the hub with all offerings for local AI and LLM operations.
Have your LiteLLM version checked? We compare your installation against the advisory, apply the update and harden the gateway according to the checklist. Book a meeting
Sources
- GitHub Security Advisory GHSA-7hp6-4w63-5g45, LiteLLM
- GitHub Security Advisory GHSA-hhww-mrg2-969h, LiteLLM
- LiteLLM, Security Advisories
- LiteLLM, Releases
- LiteLLM, Release v1.100.4
- LiteLLM, Release v1.101.4
- LiteLLM, Release v1.103.2
- LiteLLM, source code user_api_key_auth.py
- LiteLLM Docs, Production Best Practices
- LiteLLM Docs, Access Control
- LiteLLM Docs, MCP
- LiteLLM, Security Update March 2026
- CISA, Known Exploited Vulnerabilities Catalog
- NVD, CVE-2026-42208
- NVD, CVE-2026-42271
- NVD, CVE-2026-59822
Check, update and harden your LiteLLM gateway
We check the version, roles, MCP configuration and network exposure of your LiteLLM proxy, apply the update and, if required, take over ongoing operation with CVE monitoring.
Frequently Asked Questions
Answers to important questions about this topic
A vulnerability in the LiteLLM proxy, published on 30 September 2026 under the title 'Privilege Escalation to Proxy Admin via Cross-Domain Reuse of the Salt Key'. GitHub rates it CVSS 3.1 9.9 (critical). An authenticated user with the internal_user role can escalate to proxy_admin and execute commands on the host through the MCP stdio endpoint.
According to the advisory, versions from 1.91.0 are exploitable in the default configuration, up to the patched version of their line. Versions 1.87.0 to 1.90.x are only affected if EXPERIMENTAL_UI_LOGIN=true was explicitly set. Patched versions are 1.100.4, 1.101.3, 1.102.2, 1.103.1 and 1.104.0rc2 (as of 1 October 2026).
No. There is no separate fix for the 1.91 to 1.99 lines. According to the advisory, the affected range runs from 1.91.0 to below 1.100.4. Anyone running one of these versions has to update to 1.100.4 or a newer patched version, even if their own line recently received other security updates.
No. The CVSS vector states PR:L, meaning low privileges. The attack requires an account with the internal_user role that is used to request an API key. The risk is still high as soon as employees receive such an account via SSO: a single compromised account is then enough.
Only partially. Command execution through MCP stdio is the most severe consequence, but not the only one. A proxy_admin has full control over users, teams, keys, budgets and stored model credentials. The update is therefore required even without MCP.
According to the advisory, the setting disables the vulnerable authentication path and is the official workaround when an immediate update is not possible. However, it breaks CLI SSO and the Claude Code gateway login. It does not replace the update and should only apply until the patch is in place.
Not as of 1 October 2026. The GitHub advisory lists no CVE ID. Vulnerability scanners that only match CVE numbers may therefore miss it. Checks should rely on the installed version number and the GHSA identifier.
As of 1 October 2026, GHSA-7hp6-4w63-5g45 is not listed in the CISA Known Exploited Vulnerabilities catalog. Three other LiteLLM flaws from 2026 are listed there: CVE-2026-42208 (SQL injection), CVE-2026-42271 (command execution via MCP stdio test endpoints) and CVE-2026-59822 (MCP authentication bypass). Exploitation of new LiteLLM flaws is therefore a realistic scenario.
Yes, if internal users had access who are not fully trusted, or if misuse cannot be ruled out. A proxy_admin can use stored provider keys and execute commands on the host. In that case, the master key, provider keys and credentials around the host should be rotated. Do not change the salt key without a plan: according to the documentation, a new salt key makes already encrypted credentials unreadable.

Written by
Timo Wevelsiep
Co-Founder & CEO
Co-Founder of WZ-IT. Specialized in cloud infrastructure, open-source platforms and managed services for SMEs and enterprise clients worldwide.
LinkedInLet's Talk About Your Idea
Whether a specific IT challenge or just an idea - we look forward to the exchange. In a brief conversation, we'll evaluate together if and how your project fits with WZ-IT.





