Skip to main content
← All vulnerabilities
CVE-2026-84377PYSEC-2026-4066GHSA-3CV6-JPF6-8222

LiteLLM: Authenticated SSRF and provider-credential exfiltration via unvalidated request-body routing parameters

Published
Last modified
published
Not listed in CISA KEV
Fix
Fixed in 1.88.6, 1.96.2, 1.89.7, 1.90.7, 1.91.5, and 4 more
None on Exploit-DB, Metasploit or GitHub
  • Exploitation: none
  • Automatable: no
  • Technical impact: partial

Summary

LiteLLM is a proxy server (AI Gateway) to call LLM APIs in OpenAI (or native) format. Prior to versions 1.88.6 and 1.96.2, any authenticated LiteLLM proxy user could redirect an outbound provider call to a destination the user controls and cause the proxy to send its configured provider credentials to that destination. Request validation in litellm/proxy/auth/auth_utils.py, litellm/proxy/common_request_processing.py, litellm/proxy/health_endpoints/_health_endpoints.py, litellm/proxy/image_endpoints/endpoints.py, and litellm/proxy/litellm_pre_call_utils.py used incomplete checks that did not cover every sensitive parameter or inspect equivalent values across nested request fields, path values, and bracket-notation form data. Routing and credential parameters including api_base, base_url, model_list, fallbacks, and litellm_credential_name could therefore be applied without clearing the operator's stored key, exposing upstream provider credentials and other configured secrets and permitting server-side requests to internal services reachable by the proxy. This issue is fixed in versions 1.88.6 and 1.96.2.

Timeline

  1. CVE published
  2. CISA SSVC assessment

    Exploitation: none · Automatable: no · Technical impact: partial

  3. Record last updated

Affected versions

  • BerriAI litellm

    fixed in 1.88.6; From 1.89.0 · fixed in 1.96.2

  • litellmPyPI

    fixed in 1.88.6; From 1.89.0 · fixed in 1.89.7; From 1.90.0 · fixed in 1.90.7; From 1.91.0 · fixed in 1.91.5; From 1.92.0 · fixed in 1.92.2; From 1.93.0 · fixed in 1.93.2; From 1.94.0 · fixed in 1.94.3; From 1.95.0 · fixed in 1.95.1; From 1.96.0 · fixed in 1.96.2

  • litellmPyPI

    fixed in 1.88.6

  • litellmPyPI

    From 1.89.0 · fixed in 1.89.7

  • litellmPyPI

    From 1.90.0 · fixed in 1.90.7

  • litellmPyPI

    From 1.91.0 · fixed in 1.91.5

  • litellmPyPI

    From 1.92.0 · fixed in 1.92.2

  • litellmPyPI

    From 1.93.0 · fixed in 1.93.2

  • litellmPyPI

    From 1.94.0 · fixed in 1.94.3

  • litellmPyPI

    From 1.95.0 · fixed in 1.95.1

  • litellmPyPI

    From 1.96.0 · fixed in 1.96.2

References 9

GitHub · BerriAI/litellm