PYSEC-2026-391

See a problem?
Import Source
https://github.com/pypa/advisory-database/blob/main/vulns/litellm/PYSEC-2026-391.yaml
JSON Data
https://api.osv.dev/v1/vulns/PYSEC-2026-391
Aliases
Published
2026-06-29T11:50:45.645996Z
Modified
2026-06-29T12:15:25.445682126Z
Severity
  • 9.8 (Critical) CVSS_V3 - CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H CVSS Calculator
  • 9.3 (Critical) CVSS_V4 - CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N CVSS Calculator
Summary
LiteLLM has SQL Injection in Proxy API key verification
Details

Impact

A database query used during proxy API key checks mixed the caller-supplied key value into the query text instead of passing it as a separate parameter. An unauthenticated attacker could send a specially crafted Authorization header to any LLM API route (for example POST /chat/completions) and reach this query through the proxy's error-handling path.

An attacker could read data from the proxy's database and may be able to modify it, leading to unauthorised access to the proxy and the credentials it manages.

Patches

Fixed in 1.83.7. The caller-supplied value is now always passed to the database as a separate parameter. Upgrade to 1.83.7 or later.

Workarounds

If upgrading is not immediately possible, set disable_error_logs: true under general_settings. This removes the path through which unauthenticated input reaches the vulnerable query.

References

Discovery Credit: Tencent YunDing Security Lab

References

Affected packages

PyPI / litellm

Package

Affected ranges

Type
ECOSYSTEM
Events
Introduced
1.81.16
Fixed
1.83.7

Affected versions

1.*
1.81.16
1.82.0
1.82.1
1.82.2
1.82.3
1.82.4
1.82.5
1.82.6
1.83.0
1.83.1
1.83.2
1.83.3
1.83.4
1.83.5
1.83.6

Database specific

source
"https://github.com/pypa/advisory-database/blob/main/vulns/litellm/PYSEC-2026-391.yaml"