🇰🇷 한글 설명
LiteLLM 프록시 서버에서 JWT 인증이 활성화된 경우, OIDC 사용자 정보 캐시 키로 토큰의 앞 20자리를 사용함으로써 발생하는 취약점입니다. 공격자가 특정 사용자의 캐시 키와 일치하는 토큰을 생성하면, 인증 없이 해당 사용자의 권한을 탈취할 수 있습니다. 이 문제는 v1.83.0 버전에서 수정되었습니다.
💡 쉬운 설명
로그인 정보의 일부를 식별자로 사용하는데, 이 식별자가 너무 짧아 다른 사람의 정보와 겹칠 수 있는 문제입니다. 이를 통해 해커가 남의 계정으로 로그인한 것처럼 속여 시스템을 이용할 수 있습니다.
🇺🇸 원문 (English)
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.
📍 영향받는 시스템
LiteLLM v1.83.0 미만 버전 (JWT/OIDC 인증 활성화 시)
⚔️ 공격 벡터
정상 사용자의 캐시 키와 일치하는 조작된 JWT 토큰을 전송하여 인증 우회
🛡️ 대응 방법
LiteLLM을 v1.83.0 이상의 최신 버전으로 업데이트
🔧 검증 코드
출력된 버전이 1.83.0 미만이면 취약한 상태이며, 1.83.0 이상이면 안전합니다.
pip show litellm | grep Version