{ "schema_version": "1.4.0", "id": "GHSA-jjhc-v7c2-5hh6", "modified": "2026-04-03T21:59:50Z", "published": "2026-04-03T21:59:50Z", "aliases": [ "CVE-2026-35030" ], "summary": "LiteLLM: Authentication bypass via OIDC userinfo cache key collision", "details": "### Impact\n\nWhen 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.\n\nThis configuration option is not enabled by default. **Most instances are not affected.**\n\nAn 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.\n\n### Patches\n\nFixed in v1.83.0. The cache key now uses the full hash of the JWT token.\n\n### Workarounds\n\nDisable OIDC userinfo caching by setting the cache TTL to 0, or disable JWT authentication entirely.", "severity": [ { "type": "CVSS_V4", "score": "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" } ], "affected": [ { "package": { "ecosystem": "PyPI", "name": "litellm" }, "ranges": [ { "type": "ECOSYSTEM", "events": [ { "introduced": "0" }, { "fixed": "1.83.0" } ] } ] } ], "references": [ { "type": "WEB", "url": "https://github.com/BerriAI/litellm/security/advisories/GHSA-jjhc-v7c2-5hh6" }, { "type": "PACKAGE", "url": "https://github.com/BerriAI/litellm" } ], "database_specific": { "cwe_ids": [ "CWE-287" ], "severity": "CRITICAL", "github_reviewed": true, "github_reviewed_at": "2026-04-03T21:59:50Z", "nvd_published_at": null } }