Skip to main content
Live Webinar with SANS (June 25)— Agentic CTI Automation for Fun & ProfitRegister Free
Mallory
CriticalPublic exploit

LiteLLM JWT/OIDC userinfo cache key collision authentication bypass

IdentifiersCVE-2026-35030CWE-287· Improper Authentication

CVE-2026-35030 affects LiteLLM, an AI gateway/proxy for LLM APIs, in versions prior to 1.83.0. In deployments where JWT authentication is explicitly enabled via enable_jwt_auth: true, the OIDC userinfo cache derives its cache key from token[:20]. Because JWTs signed with the same algorithm can share identical first 20 characters, this cache keying scheme is insufficiently unique and can cause collisions between different tokens. An unauthenticated attacker can craft a token whose first 20 characters match those of a legitimate user’s cached token; if the target user’s entry is already present in the cache, LiteLLM may return the cached userinfo for the legitimate user and treat the attacker as that user. This results in an authentication bypass and identity/permission confusion condition. The issue is not enabled by default and primarily affects deployments using JWT/OIDC authentication. The vulnerability is fixed in LiteLLM 1.83.0.

Share:
For your environment

Are you exposed to this one?

Mallory correlates every CVE against your assets, your vendors, and active adversary campaigns. Know which vulnerabilities matter for you, not just which ones are loud.

ANALYST BRIEF

Impact, mitigation & remediation

What it means. What to do now. Patch path, mitigations, and the assume-compromise checklist.

Impact

What an attacker gets, and what they’ve been doing with it.

Successful exploitation allows an unauthenticated attacker to inherit a legitimate cached user’s identity and associated permissions within the affected LiteLLM deployment. Depending on the victim account’s privileges, this can expose protected LLM gateway functionality, permit unauthorized API usage, access data or configuration available to that user, and enable actions to be performed under the victim’s authorization context. The available information indicates confidentiality and integrity impact, but not a primary availability impact.

Mitigation

If you can’t patch tonight, do this now.

If immediate upgrade is not possible, disable JWT authentication/OIDC-based authentication paths that rely on the vulnerable userinfo cache, particularly by avoiding deployments with enable_jwt_auth: true until patched. As an interim risk-reduction measure, restrict external access to affected LiteLLM instances and monitor for anomalous authentication behavior or unexpected identity/permission mappings. Most instances are not affected unless JWT authentication was explicitly enabled.

Remediation

Patch, then assume compromise.

Upgrade LiteLLM to version 1.83.0 or later, which fixes the vulnerable cache key behavior in the JWT/OIDC userinfo caching path. Ensure all affected deployments using enable_jwt_auth: true are updated.
PUBLIC EXPLOITS

Exploits

1 valid exploit after Mallory filtered fakes, detection scripts, and README-only repos.

VALID 1 / 1 TOTALView more in app
CVE-2026-35030-PoCMaturityPoCVerified exploit

This repository is a working Python PoC for CVE-2026-35030, an authentication bypass in BerriAI LiteLLM affecting versions prior to 1.83.0 when JWT/OIDC auth is enabled. The core issue is that LiteLLM caches OIDC userinfo using only the first 20 characters of the bearer token, which for RS256 JWTs are identical across different users because the JWT header is the same. The exploit demonstrates that if an admin's userinfo is cached first, a second JWT for an attacker can collide on the same cache key and inherit the admin identity. Repository structure is straightforward: `exploit/exploit.py` is the main entry point and performs either a collision demo or a full exploit attempt; `exploit/token_forge.py` obtains JWTs from the mock OIDC provider and analyzes their shared prefix; `oidc-provider/server.py` implements a FastAPI-based mock OIDC server with discovery, JWKS, userinfo, token issuance, and health endpoints; `docker-compose.yml` orchestrates PostgreSQL, the mock OIDC provider, a vulnerable LiteLLM instance on port 4000, and an optional fixed instance on port 4001; `litellm_config.yaml` enables JWT auth and points LiteLLM at the mock OIDC userinfo endpoint; the Dockerfiles pin vulnerable/fixed LiteLLM versions and patch enterprise checks for local reproduction. Main exploit capability: network-based auth bypass and privilege escalation via cache-key collision, not code execution. The exploit sends HTTP GET requests to LiteLLM `/user/info` with crafted bearer tokens after obtaining them from the mock OIDC `/token` endpoint. Success is determined by whether the attacker request receives `user_id=admin` or equivalent admin claims. The repository also includes a fixed-version comparison path showing that sha256-based cache keys prevent the collision.

learner202649Disclosed May 19, 2026pythonyamlnetworkweb
EXPOSURE SURFACE

Affected products & vendors

Products and vendors Mallory has correlated with this vulnerability. Open in Mallory to drill down to specific CPE configurations and version ranges.

VendorProductType
BerriAILitellmapplication
LitellmLitellmapplication

Vendor-confirmed product mapping. Mallory continuously reconciles this list against your asset inventory.

What this page doesn’t show

The version that knows your environment.

This page is what’s public. Mallory adds the parts that aren’t: which of your assets are affected, which adversaries are exploiting it right now, which detections to deploy, and what to do tonight.
Exposure mapping

Query your assets running an affected version, and investigate the blast radius.

Threat actor evidence

Every observed campaign linking this CVE to a named adversary.

Associated malware

Malware families riding this exploit, with evidence and IOCs.

Detection signatures

YARA, Sigma, Snort, and vendor rules, auto-deployed to your SIEM.

Vendor-by-vendor mapping

Cross-references every affected SKU, including bundled OEM variants.

Social activity2

Community discussion across Reddit, Mastodon, and other social sources.