Podatność w serwerze proxy LiteLLM umożliwia nieuwierzytelnionemu atakującemu przejęcie tożsamości i uprawnień legalnego użytkownika poprzez manipulację tokenem JWT. Dotyczy konfiguracji z włączonym uwierzytelnianiem JWT/OIDC i jest oceniana jako krytyczna (CVSS 9.4).
▸ Pokaż oryginał (EN)
LiteLLM is a proxy server (AI Gateway) to call LLM APIs in OpenAI (or native) format. Prior to 1.83.0, when JWT authentication is enabled (enable_jwt_auth: true), the OIDC userinfo cache uses token[:20] as the cache key. JWT headers produced by the same signing algorithm generate identical first 20 characters. This configuration option is not enabled by default. Most instances are not affected. An unauthenticated attacker can craft a token whose first 20 characters match a legitimate user's cached token. On cache hit, the attacker inherits the legitimate user's identity and permissions. This affects deployments with JWT/OIDC authentication enabled. Fixed in v1.83.0.
Gdy włączona jest opcja 'enable_jwt_auth: true', mechanizm cache OIDC userinfo używa jedynie pierwszych 20 znaków tokenu (token[:20]) jako klucza cache. Tokeny JWT podpisane tym samym algorytmem mogą generować identyczne pierwsze 20 znaków. Atakujący może spreparować token, którego pierwsze 20 znaków pokrywa się z tokenem legalnego użytkownika znajdującym się już w cache. W przypadku trafienia w cache (cache hit) atakujący przejmuje tożsamość i uprawnienia tego użytkownika bez konieczności posiadania ważnych poświadczeń.
Atakujący uzyskuje nieautoryzowany dostęp do zasobów i funkcji dostępnych dla legalnego użytkownika, w tym potencjalnie pełną kontrolę nad systemami zewnętrznymi (SC:H/SI:H), z którymi integruje się LiteLLM jako AI Gateway.
Należy zaktualizować LiteLLM do wersji 1.83.0 lub nowszej, w której poprawiono mechanizm generowania klucza cache. Do czasu aktualizacji, jako obejście, można rozważyć wyłączenie opcji 'enable_jwt_auth' jeśli nie jest bezwzględnie wymagana.
LiteLLM (produkt firmy BerriAI) w wersjach wcześniejszych niż 1.83.0, wyłącznie w konfiguracjach z włączoną opcją 'enable_jwt_auth: true'. Opcja ta nie jest domyślnie aktywna, co ogranicza zasięg podatności.
Podatność dotyczy wyłącznie wdrożeń z jawnie włączoną opcją 'enable_jwt_auth: true' — domyślna konfiguracja LiteLLM nie jest podatna. Szczegóły opublikowano w GitHub Security Advisory GHSA-jjhc-v7c2-5hh6.
CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:N/VC:H/VI:H/VA:N/SC:H/SI:H/SA:N/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:XLitellm
APPLitellm< 1.83.0
Powiązane podatności
SQL Injection w LiteLLM umożliwia nieautoryzowany dostęp do bazy danych
Atak supply chain na Trivy — złośliwe tagi GitHub Actions i obraz kontenera
Krytyczna podatność w LiteLLM (AI Gateway) — obejście uwierzytelniania
RCE w BerriAI/litellm poprzez endpoint /config/update
BerriAI LiteLLM – SSTI via Jinja umożliwia RCE przez endpoint /completions