2026-10-11 17:15 UTC

BerriAI's advisory GHSA-7hp6-4w63-5g45 discloses that LiteLLM's proxy reuses one salt key both to seal secrets at rest and to mint session tokens, letting any authenticated internal_user forge proxy-admin credentials and reach host RCE via the MCP stdio endpoint in default configurations across versions 1.91.0+; exploitation in the wild or mass patching of deployed LLM gateways would establish gateway key-separation as a demonstrated operational risk class for agent stacks.

state: seedheat: mediumuncertainty: mediumconvergesscott: highagentic-security llm-infrastructure litellmBerriAIHoa X. Nguyen

What is this?

BerriAI maintains LiteLLM, one of the most widely deployed open-source LLM gateways, proxying OpenAI, Anthropic, Bedrock and other providers behind a single OpenAI-compatible API. The supplied web results ground a critical, actively exploited LiteLLM flaw: CVE-2026-42271 / GHSA-v4p8-mg3p-g94g β€” two MCP 'preview' endpoints (POST /mcp-rest/test/connection and /mcp-rest/test/tools/list) accepted a full stdio server config (command/args/env) gated only by a valid proxy API key with no role check, letting low-privilege users spawn arbitrary processes on the proxy host; fixed in 1.83.7 (endpoints now require PROXY_ADMIN), chained by Horizon3.ai with the Starlette 'BadHost' Host-header bypass (CVE-2026-48710) into unauthenticated RCE, and added to CISA's KEV catalog on 2026-06-08 with a June 22 federal remediation deadline. However, the snippets do NOT corroborate the case's specific advisory GHSA-7hp6-4w63-5g45 β€” the salt-key-reuse between secret sealing and session-token minting, the internal_userβ†’proxy_admin forgery chain, and the 1.91.0+ version range appear nowhere in the supplied material, which instead documents a distinct flaw in 1.74.2–1.83.6; the hypothesis's mechanism currently rests on the case's own evidence titles alone and needs re-verification against the actual advisory. Key person 'Hoa X. Nguyen' is not named in the snippets (the first-flaw write-up credits researcher 'jaydns'), and a Mallory summary notes LiteLLM shipped multiple chainable advisories including an unauthenticated SQL injection (GHSA-r75f-5x8p-qvmc) and a server-side template injection flaw.

Why it matters to Scott

This touches rather than merely illustrates: dev:technology.litellm is the single OpenAI-compatible gateway ALL of Scott's projects route model calls through, and the disclosed chain β€” one salt key doing double duty sealing secrets and minting sessions, internal_user forging proxy_admin, host RCE via the MCP stdio endpoint β€” is a field demonstration of exactly the key-double-duty and tier-escalation failures his capability-tokens, capability-scope-separation and Breach Doesn't Compose work argues against, making this simultaneous patch/audit action on his own stack and dated-receipt material for the MCP tool-belt security checklist. Caveat before publishing: the supplied web record corroborates a sibling LiteLLM MCP-stdio RCE (GHSA-v4p8-mg3p-g94g, fixed 1.83.7, KEV-listed, chained via a Starlette Host-header bypass) but not the case's specific GHSA-7hp6-4w63-5g45 salt-reuse mechanism or its 1.91.0+ range β€” re-verify the advisory id and affected versions, since the actionable conclusion (audit deployed gateway version, key separation, and MCP endpoint exposure) holds under either flaw.
dev:technology.litellmip:concept.capability-scope-separationip:concept.capability-tokensip:source.breach-doesnt-compose-ebookip:source.mcp-as-the-tool-belt-standard-giving-ai-agents-hands-and-eyes-ebookradar:concept.llm-gatewaysradar:concept.agentic-securityradar:concept.mcp-securityradar:concept.secrets-managementradar:concept.privilege-escalationradar:cloakwall-litellm-privacy-audit
queries asked of Scott's wikis
  • LiteLLM proxy gateway deployment dev projects
  • MCP tool execution security stdio subprocess sandboxing
  • agent stack secrets management key separation sealing at rest
  • least-privilege API key tiers admin escalation RBAC
  • LLM gateway RCE threat model agentic infrastructure
  • self-hosted local model inference gateway routing

Measured heat

now 0 pts/hpeak 5 pts/hcomments 0/hpeers p14momentum: steady2 platformsage 290h
points/hour across evidence Β· reading as of 2026-10-12 02:59:37.977291+11:00 Β· deterministic, not a model opinion

How the heat travelled

09-29 14:00⭐ origin echo-reconstructedAdvisory: 'An authenticated user with internal_user privileges can escalate to proxy_admin and achieve remote code execution' β€” the proxy 'u
BerriAI (published by yuneng-berri; discovered by Hoa X. Nguyen, OPSWAT Unit 515) on github (echo) Β· attributed from hn.story.49903923
β€”
09-30 03:09first on hacker news Β· published Β· +13.2hCritical LiteLLM Vulnerability
ajackfox
β€”
09-30 03:09amplified on hacker news πŸ‘‘hn.story.49903923
ajackfox
peak 1 Β· 0 comments Β· 106% of case engagement
09-30 03:21our radar first saw it Β· +13.4hdiscovery anchor: hn.story.49903923β€”
pace: p8 vs 1188 stories at the 168h mark (now 290h old) β€” behind addom-local-coding-harness (0.5x)

Evidence (2) β€” ⭐ canonical anchor

sourceobjectauthorscorecomments
🟧 hnCritical LiteLLM Vulnerability
Retrieved article excerpt

Open article Β· Retrieved 2026-09-30T03:31:34.306076+00:00

[BerriAI](https://github.com/BerriAI) 
/
**[litellm](https://github.com/BerriAI/litellm)**
Public

- ### Uh oh!

  There was an error while loading. [Please reload this page](https://github.com/BerriAI/litellm/security/advisories/GHSA-7hp6-4w63-5g45).
- [Notifications](https://github.com/login?return_to=%2FBerriAI%2Flitellm) You must be signed in to change notification settings
- [Fork
  11.9k](https://github.com/login?return_to=%2FBerriAI%2Flitellm)
- [Star
   59.9k](https://github.com/login?return_to=%2FBerriAI%2Flitellm)

# Privilege Escalation to Proxy Admin via Cross-Domain Reuse of the Salt Key

High

[yuneng-berri](https://github.com/yuneng-berri)
published
GHSA-7hp6-4w63-5g45
Sep 30, 2026

## Package

pip
litellm 
([pip](https://github.com/advisories?query=ecosystem%3Apip))

## Affected versions

>= 1.91.0, < 1.100.4

>= 1.101.0, < 1.101.3

>= 1.102.0, < 1.102.2

>= 1.103.0, <1.103.1

>= 1.104.0rc1, < 1.104.0rc2

## Patched versions

1.100.4

1.101.3

1.102.2

1.103.1

1.104.0rc2

## Description

### Summary

An authenticated user with `internal_user` privileges can escalate to `proxy_admin` and achieve remote code execution. The proxy uses one encryption key for two purposes: sealing secrets at rest and minting session tokens. An attacker exploits this by requesting a new API key with a crafted metadata field containing a forged admin credential as the "secret" value. The proxy encrypts and returns this payload. When this value is then presented as a bearer token, the proxy decrypts it, trusts the forged admin identity, and grants full administrative access, including the ability to execute arbitrary commands via the MCP stdio endpoint.

### Affected versions

Versions later than 1.91.0 are exploitable in the default configuration. Versions 1.87.0 through 1.90.x are exploitable only if `EXPERIMENTAL_UI_LOGIN=true` was explicitly set.

### Mitigation

Upgrade to a patched version as soon as possible.

If you cannot upgrade immediately, set `EXPERIMENTAL_UI_LOGIN=false`. This disables the vulnerable authentication path but also breaks CLI SSO and Claude Code gateway login.

### Impact

An internal user can escalate to proxy admin and execute arbitrary commands on the host.

**Discovery Credit:** Hoa X. Nguyen (OPSWAT Unit 515)

### Severity

High

7.7



# CVSS overall score

This score calculates overall vulnerability severity from 0 to 10 and is based on the Common Vulnerability Scoring System (CVSS).

/ 10

#### CVSS v4 base metrics

##### Exploitability Metrics

Attack Vector
Network

Attack Complexity
Low

Attack Requirements
Present

Privileges Required
Low

User interaction
None

##### Vulnerable System Impact Metrics

Confidentiality
High

Integrity
High

Availability
High

##### Subsequent System Impact Metrics

Confidentiality
None

Integrity
None

Availability
None

Learn more about base metrics



# CVSS v4 base metrics

##### Exploitability Metrics

Attack Vector:
This metric reflects the context by which vulnerability exploitation is possible. This metric value (and consequently the resulting severity) will be larger the more remote (logically, and physically) an attacker can be in order to exploit the vulnerable system. The assumption is that the number of potential attackers for a vulnerability that could be exploited from across a network is larger than the number of potential attackers that could exploit a vulnerability requiring physical access to a device, and therefore warrants a greater severity.

Attack Complexity:
This metric captures measurable actions that must be taken by the attacker to actively evade or circumvent existing built-in security-enhancing conditions in order to obtain a working exploit. These are conditions whose primary purpose is to increase security and/or increase exploit engineering complexity. A vulnerability exploitable without a target-specific variable has a lower complexity than a vulnerability that would require non-trivial customization. This metric is meant to capture security mechanisms utilized by the vulnerable system.

Attack Requirements:
This metric captures the prerequisite deployment and execution conditions or variables of the vulnerable system that enable the attack. These differ from security-enhancing techniques/technologies (ref Attack Complexity) as the primary purpose of these conditions is not to explicitly mitigate attacks, but rather, emerge naturally as a consequence of the deployment and execution of the vulnerable system.

Privileges Required:
This metric describes the level of privileges an attacker must possess prior to successfully exploiting the vulnerability. The method by which the attacker obtains privileged credentials prior to the attack (e.g., free trial accounts), is outside the scope of this metric. Generally, self-service provisioned accounts do not constitute a privilege requirement if the attacker can grant themselves privileges as part of the attack.

User interaction:
This metric captures the requirement for a human user, other than the attacker, to participate in the successful compromise of the vulnerable system. This metric determines whether the vulnerability can be exploited solely at the will of the attacker, or whether a separate user (or user-initiated process) must participate in some manner.

##### Vulnerable System Impact Metrics

Confidentiality:
This metric measures the impact to the confidentiality of the information managed by the VULNERABLE SYSTEM due to a successfully exploited vulnerability. Confidentiality refers to limiting information access and disclosure to only authorized users, as well as preventing access by, or disclosure to, unauthorized ones.

Integrity:
This metric measures the impact to integrity of a successfully exploited vulnerability. Integrity refers to the trustworthiness and veracity of information. Integrity of the VULNERABLE SYSTEM is impacted when an attacker makes unauthorized modification of system data. Integrity is also impacted when a system user can repudiate critical actions taken in the context of the system (e.g. due to insufficient logging).

Availability:
This metric measures the impact to the availability of the VULNERABLE SYSTEM resulting from a successfully exploited vulnerability. While the Confidentiality and Integrity impact metrics apply to the loss of confidentiality or integrity of data (e.g., information, files) used by the system, this metric refers to the loss of availability of the impacted system itself, such as a networked service (e.g., web, database, email). Since availability refers to the accessibility of information resources, attacks that consume network bandwidth, processor cycles, or disk space all impact the availability of a system.

##### Subsequent System Impact Metrics

Confidentiality:
This metric measures the impact to the confidentiality of the information managed by the SUBSEQUENT SYSTEM due to a successfully exploited vulnerability. Confidentiality refers to limiting information access and disclosure to only authorized users, as well as preventing access by, or disclosure to, unauthorized ones.

Integrity:
This metric measures the impact to integrity of a successfully exploited vulnerability. Integrity refers to the trustworthiness and veracity of information. Integrity of the SUBSEQUENT SYSTEM is impacted when an attacker makes unauthorized modification of system data. Integrity is also impacted when a system user can repudiate critical actions taken in the context of the system (e.g. due to insufficient logging).

Availability:
This metric measures the impact to the availability of the SUBSEQUENT SYSTEM resulting from a successfully exploited vulnerability. While the Confidentiality and Integrity impact metrics apply to the loss of confidentiality or integrity of data (e.g., information, files) used by the system, this metric refers to the loss of availability of the impacted system itself, such as a networked service (e.g., web, database, email). Since availability refers to the accessibility of information resources, attacks that consume network bandwidth, processor cycles, or disk space all impact the availability of a system.

CVSS:4.0/AV:N/AC:L/AT:P/PR:L/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N

### CVE ID

No known CVE

### Weaknesses

 Weakness
CWE-269

#### [Improper Privilege Management](https://github.com/advisories?query=cwe%3A269)

The product does not properly assign, modify, track, or check privileges for an actor, creating an unintended sphere of control for that actor.
 [Learn more on MITRE.](https://cwe.mitre.org/data/definitions/269.html)



 Weakness
CWE-345

#### [Insufficient Verification of Data Authenticity](https://github.com/advisories?query=cwe%3A345)

The product does not sufficiently verify the origin or authenticity of data, in a way that causes it to accept invalid data.
 [Learn more on MITRE.](https://cwe.mitre.org/data/definitions/345.html)



 Weakness
CWE-441

#### [Unintended Proxy or Intermediary ('Confused Deputy')](https://github.com/advisories?query=cwe%3A441)

The product receives a request, message, or directive from an upstream component, but the product does not sufficiently preserve the original source of the request before forwarding the request to an external actor that is outside of the product's control sphere. This causes the product to appear to be the source of the request, leading it to act as a proxy or other intermediary between the upstream component and the external actor.
 [Learn more on MITRE.](https://cwe.mitre.org/data/definitions/441.html)

### Credits

- [@Haruna38](https://github.com/Haruna38)
  [Haruna38](https://github.com/Haruna38) 

  Reporter
ajackfox10
🟧 echo.github ⭐Advisory: 'An authenticated user with internal_user privileges can escalate to proxy_admin and achieve remote code execution' β€” the proxy 'uBerriAI (published by yuneng-berri; discovered by Hoa X. Nguyen, OPSWAT Unit 515)β€”β€”

Interpretation history

Decision trace