LiteLLM: Authenticated SSRF and provider-credential exfiltration via unvalidated request-body routing parameters
What fixes it
- 1.88.6litellm, pipGitHub
- 1.89.7litellm, pipGitHub
- 1.90.7litellm, pipGitHub
- 1.91.5litellm, pipGitHub
- 1.92.2litellm, pipGitHub
- 1.93.2litellm, pipGitHub
Show all 18 fixed versions
- 1.94.3litellm, pipGitHub
- 1.95.1litellm, pipGitHub
- 1.96.2litellm, pipGitHub
- 1.88.6litellm, PyPIOSV
pip install "litellm>=1.88.6" - 1.89.7litellm, PyPIOSV
pip install "litellm>=1.89.7" - 1.90.7litellm, PyPIOSV
pip install "litellm>=1.90.7" - 1.91.5litellm, PyPIOSV
pip install "litellm>=1.91.5" - 1.92.2litellm, PyPIOSV
pip install "litellm>=1.92.2" - 1.93.2litellm, PyPIOSV
pip install "litellm>=1.93.2" - 1.94.3litellm, PyPIOSV
pip install "litellm>=1.94.3" - 1.95.1litellm, PyPIOSV
pip install "litellm>=1.95.1" - 1.96.2litellm, PyPIOSV
pip install "litellm>=1.96.2"
A fixed version on one release line is not the upgrade target for every line. Check your exact version and any vendor backports.
Description
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.
Text from GitHub Advisory Database
Affected versions 99
- litellm, pip< 1.88.6GitHub
- litellm, pip>= 1.89.0, < 1.89.7GitHub
- litellm, pip>= 1.90.0, < 1.90.7GitHub
- litellm, pip>= 1.91.0, < 1.91.5GitHub
- litellm, pip>= 1.92.0, < 1.92.2GitHub
- litellm, pip>= 1.93.0, < 1.93.2GitHub
- litellm, pip>= 1.94.0, < 1.94.3GitHub
- litellm, pip>= 1.95.0, < 1.95.1GitHub
- litellm, pip>= 1.96.0, < 1.96.2GitHub
- litellmaffected: < 1.88.6CVE List
- litellmaffected: >= 1.89.0, < 1.96.2CVE List
- litellm, pip<1.94.0GitHub
- litellm, PyPIfrom first release, fixed in 1.88.6OSV
- litellm, PyPI0.1.0OSV
- litellm, PyPI0.1.1OSV
- litellm, PyPI0.1.2OSV
- litellm, PyPI0.1.201OSV
- litellm, PyPI0.1.202OSV
- litellm, PyPI0.1.203OSV
- litellm, PyPI0.1.204OSV
- litellm, PyPI0.1.205OSV
- litellm, PyPI0.1.206OSV
- litellm, PyPI0.1.207OSV
- litellm, PyPI0.1.208OSV
- litellm, PyPI0.1.209OSV
- litellm, PyPI0.1.210OSV
- litellm, PyPI0.1.211OSV
- litellm, PyPI0.1.212OSV
- litellm, PyPI0.1.213OSV
- litellm, PyPI0.1.214OSV
- litellm, PyPI0.1.215OSV
- litellm, PyPI0.1.216OSV
- litellm, PyPI0.1.217OSV
- litellm, PyPI0.1.218OSV
- litellm, PyPI0.1.219OSV
- litellm, PyPI0.1.220OSV
- litellm, PyPI0.1.221OSV
- litellm, PyPI0.1.222OSV
- litellm, PyPI0.1.223OSV
- litellm, PyPI0.1.224OSV
- litellm, PyPI0.1.225OSV
- litellm, PyPI0.1.226OSV
- litellm, PyPI0.1.227OSV
- litellm, PyPI0.1.228OSV
- litellm, PyPI0.1.229OSV
- litellm, PyPI0.1.2291OSV
- litellm, PyPI0.1.230OSV
- litellm, PyPI0.1.231OSV
- litellm, PyPI0.1.232OSV
- litellm, PyPI0.1.233OSV
- litellm, PyPI0.1.234OSV
- litellm, PyPI0.1.235OSV
- litellm, PyPI0.1.236OSV
- litellm, PyPI0.1.237OSV
- litellm, PyPI0.1.238OSV
- litellm, PyPI0.1.3OSV
- litellm, PyPI0.1.31OSV
- litellm, PyPI0.1.32OSV
- litellm, PyPI0.1.330OSV
- litellm, PyPI0.1.331OSV
- litellm, PyPI0.1.34OSV
- litellm, PyPI0.1.341OSV
- litellm, PyPI0.1.343OSV
- litellm, PyPIfrom 1.89.0, fixed in 1.89.7OSV
- litellm, PyPI1.89.0OSV
- litellm, PyPI1.89.1OSV
- litellm, PyPI1.89.2OSV
- litellm, PyPI1.89.3OSV
- litellm, PyPI1.89.4OSV
- litellm, PyPI1.89.5OSV
- litellm, PyPI1.89.6OSV
- litellm, PyPIfrom 1.90.0, fixed in 1.90.7OSV
- litellm, PyPI1.90.0OSV
- litellm, PyPI1.90.1OSV
- litellm, PyPI1.90.2OSV
- litellm, PyPI1.90.3OSV
- litellm, PyPI1.90.4OSV
- litellm, PyPI1.90.5OSV
- litellm, PyPI1.90.6OSV
- litellm, PyPIfrom 1.91.0, fixed in 1.91.5OSV
- litellm, PyPI1.91.0OSV
- litellm, PyPI1.91.1OSV
- litellm, PyPI1.91.2OSV
- litellm, PyPI1.91.3OSV
- litellm, PyPI1.91.4OSV
- litellm, PyPIfrom 1.92.0, fixed in 1.92.2OSV
- litellm, PyPI1.92.0OSV
- litellm, PyPI1.92.1OSV
- litellm, PyPIfrom 1.93.0, fixed in 1.93.2OSV
- litellm, PyPI1.93.0OSV
- litellm, PyPI1.93.1OSV
- litellm, PyPIfrom 1.94.0, fixed in 1.94.3OSV
- litellm, PyPI1.94.0OSV
- litellm, PyPI1.94.1OSV
- litellm, PyPI1.94.2OSV
- litellm, PyPIfrom 1.95.0, fixed in 1.95.1OSV
- litellm, PyPI1.95.0OSV
- litellm, PyPIfrom 1.96.0, fixed in 1.96.2OSV
- litellm, PyPI1.96.0OSV
References 11
- github.com/BerriAI/litellm/commit/473f72e63a9777d793fbbf57194d8ec4fb97bc1bFixvia CVE List
- github.com/BerriAI/litellm/commit/820f247a6abba55cd87d130bef7bba7be3b29d37Fixvia CVE List
- github.com/BerriAI/litellm/commit/c898d341c02299cf2506d0d8e84cc67953043593Fixvia CVE List
- github.com/BerriAI/litellm/releases/tag/v1.88.6Fixvia CVE List
- github.com/BerriAI/litellm/releases/tag/v1.96.2Fixvia CVE List
- github.com/BerriAI/litellm/security/advisories/GHSA-3cv6-jpf6-8222Advisoryvia CVE List
- github.com/advisories/GHSA-3cv6-jpf6-8222Advisoryvia GitHub
- nvd.nist.gov/vuln/detail/CVE-2026-84377Referencevia GitHub
- github.com/BerriAI/litellm/pull/36011Referencevia CVE List
- github.com/BerriAI/litellm/pull/36314Referencevia CVE List
- github.com/BerriAI/litellm/pull/36494Referencevia CVE List