CVE-2026-84377: LiteLLM: Authenticated SSRF and provider-credential exfiltration via unvalidated request-body routing parameters
Any authenticated user of a LiteLLM proxy could send request-body parameters that redirect an outbound provider call to a server they control, and the proxy would attach its own provider credentials to that call. This leaks the operator's upstream API keys and allows SSRF to internal services. Fixed in 1.96.2, 1.95.1, 1.94.3, 1.93.2, 1.92.2, 1.91.5, 1.90.7, 1.89.7 and 1.88.6.
Published Sep 30, 2026 · Analysis Oct 22, 2026
What an attacker can do
The proxy filtered sensitive request-body fields with a denylist. The list missed some parameters and did not look inside parameters nested in other request fields. A caller could therefore supply a routing or credential value, such as api_base, base_url, model_list, fallbacks or a provider credential field, that the proxy applied without clearing the operator's stored key. The proxy then sent the real upstream key to the attacker-chosen destination.
An attacker needs only a valid proxy key, any key, since the CVSS vector requires low privileges. A single chat or completion request with an attacker-controlled api_base is enough. The outcomes are theft of the operator's upstream provider credentials and other configured secrets, and server-side requests to internal services reachable from the proxy host. The advisory does not claim code execution.
This matters most where one LiteLLM proxy is shared by many teams or applications and virtual keys are handed out widely, because every key holder becomes able to take the master provider credentials.
Who is affected
litellm below 1.88.6, and each affected line: 1.89.0 to before 1.89.7, 1.90.0 to before 1.90.7, 1.91.0 to before 1.91.5, 1.92.0 to before 1.92.2, 1.93.0 to before 1.93.2, 1.94.0 to before 1.94.3, 1.95.0 to before 1.95.1, and 1.96.0 to before 1.96.2. The risk applies to LiteLLM proxy deployments with more than one caller.
pip show litellmlitellm
- Ecosystem
- PyPI
- Affected
- < 1.88.6
- Fixed in
- 1.88.6
- Check
pip show litellm
litellm
- Ecosystem
- PyPI
- Affected
- >= 1.89.0, < 1.89.7
- Fixed in
- 1.89.7
- Check
pip show litellm
litellm
- Ecosystem
- PyPI
- Affected
- >= 1.90.0, < 1.90.7
- Fixed in
- 1.90.7
- Check
pip show litellm
litellm
- Ecosystem
- PyPI
- Affected
- >= 1.91.0, < 1.91.5
- Fixed in
- 1.91.5
- Check
pip show litellm
litellm
- Ecosystem
- PyPI
- Affected
- >= 1.92.0, < 1.92.2
- Fixed in
- 1.92.2
- Check
pip show litellm
litellm
- Ecosystem
- PyPI
- Affected
- >= 1.93.0, < 1.93.2
- Fixed in
- 1.93.2
- Check
pip show litellm
litellm
- Ecosystem
- PyPI
- Affected
- >= 1.94.0, < 1.94.3
- Fixed in
- 1.94.3
- Check
pip show litellm
litellm
- Ecosystem
- PyPI
- Affected
- >= 1.95.0, < 1.95.1
- Fixed in
- 1.95.1
- Check
pip show litellm
litellm
- Ecosystem
- PyPI
- Affected
- >= 1.96.0, < 1.96.2
- Fixed in
- 1.96.2
- Check
pip show litellm
How to fix it
Upgrade to the patched release for your line: 1.96.2, 1.95.1, 1.94.3, 1.93.2, 1.92.2, 1.91.5, 1.90.7, 1.89.7 or 1.88.6.
pip install -U litellmWorkarounds from the advisory:
- Set
general_settings.allow_client_side_credentialstofalseso callers cannot override connection parameters. - Restrict proxy keys to trusted callers.
- Block
api_base,base_url,model_list,fallbacksand provider credential fields at a reverse proxy or API gateway.
If an untrusted user held a key before you patched, rotate the upstream provider keys.
How to tell if you were hit
Review proxy request logs for bodies that contain api_base, base_url, model_list, fallbacks or credential fields sent by ordinary virtual keys. Check network egress from the proxy host for connections to hosts that are not your configured providers, and for requests to internal addresses. Check your upstream provider dashboards for key use from unfamiliar IPs. Rotate the provider keys if any of this shows up.
Original advisory
From the GitHub Advisory Database (CC BY 4.0).
Impact
Any authenticated LiteLLM proxy user could redirect an outbound provider call to a destination they control and cause the proxy to send its own configured provider credentials to that destination. The proxy's request-body validation was a denylist that did not cover every sensitive parameter and did not inspect parameters nested inside other request fields, so a caller could supply a routing or credential value that the proxy applied without clearing the operator's stored key. Any authenticated user could therefore exfiltrate the operator's upstream provider credentials and other configured secrets, and perform Server-Side Request Forgery against internal services reachable from the proxy.
Patches
Fixed in 1.96.2, 1.95.1, 1.94.3, 1.93.2, 1.92.2, 1.91.5, 1.90.7, 1.89.7, and 1.88.6.
Workarounds
Set general_settings.allow_client_side_credentials to false so callers cannot override connection parameters, restrict proxy keys to trusted callers, and block the affected parameters (api_base, base_url, model_list, fallbacks, provider credential fields) at a reverse proxy or API gateway.
Questions
- Does the attacker need the LiteLLM master key?
No. Any authenticated proxy user, with any valid key, can send the crafted request body. That is why wide distribution of virtual keys raises the risk.
- Can I mitigate CVE-2026-84377 without upgrading?
Partly. Set
general_settings.allow_client_side_credentialstofalse, limit keys to trusted callers, and block the routing and credential parameters at a gateway. Upgrading remains the fix.- Should I rotate provider keys?
If untrusted users held proxy keys on a vulnerable version, yes. The flaw lets them send your upstream credentials to their server, and the proxy logs may not show it.
References
Read for this analysis:
- https://github.com/BerriAI/litellm/security/advisories/GHSA-3cv6-jpf6-8222
- https://nvd.nist.gov/vuln/detail/CVE-2026-84377
- https://github.com/BerriAI/litellm/pull/36011
- https://github.com/BerriAI/litellm/pull/36314
- https://github.com/BerriAI/litellm/pull/36494
- https://github.com/BerriAI/litellm/commit/473f72e63a9777d793fbbf57194d8ec4fb97bc1b
- https://github.com/BerriAI/litellm/commit/820f247a6abba55cd87d130bef7bba7be3b29d37
- https://github.com/BerriAI/litellm/commit/c898d341c02299cf2506d0d8e84cc67953043593
How this page is made: the data panel comes from the GitHub Advisory Database, CISA’s KEV catalog, the NVD and FIRST EPSS, and updates twice a day. The analysis is written by an AI model from the sources listed above and checked by automated rules before it is published. Check versions against the vendor's advisory before you act. Methodology
More LiteLLM vulnerabilities
All LiteLLM entriesCVE-2026-59823
LiteLLM Proxy has server-side request forgery via the `user_config` request parameter
medium5.3Sep 17, 2026CVE-2026-37004
LiteLLM vulnerable to server-side template injection in the /prompts/test endpoint
critical9.8Aug 27, 2026CVE-2026-59819
LiteLLM: Local file read via request-supplied OIDC file references
low2.1Jul 22, 2026CVE-2026-59820
LiteLLM: Arbitrary file write via path traversal in Skills archive extraction
medium6.1Jul 22, 2026CVE-2026-59821
LiteLLM: Custom Code Guardrails production endpoints bypass code safety checks
low2.1Jul 22, 2026CVE-2026-59822
LiteLLM: MCP Authentication Bypass via OAuth2 Passthrough Fallback
high8.8ExploitedJul 22, 2026
