From e19ed193f19974b0e2214284b0b4b030d8e31bc6 Mon Sep 17 00:00:00 2001 From: samearth17 Date: Mon, 10 Aug 2026 01:10:10 +0530 Subject: [PATCH] security(router): prevent global cache hijacking via client-provided cache_kwargs --- litellm/router.py | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/litellm/router.py b/litellm/router.py index 0ba889636b3..a43f4f79d80 100644 --- a/litellm/router.py +++ b/litellm/router.py @@ -525,19 +525,15 @@ class Router: self.deployment_names: list = [] # names of models under litellm_params. ex. azure/chatgpt-v-2 self.deployment_latency_map = {} ### CACHING ### - cache_type: Literal["local", "redis", "redis-semantic", "s3", "disk"] = "local" # default to an in-memory cache redis_cache = None cache_config: Final[dict[str, Any]] = {} # FIX: Apply cache_kwargs regardless of whether Redis is used cache_config.update(cache_kwargs) if "type" in cache_config: - # Pop removes 'type' from cache_config and assigns it to cache_type. - # This prevents passing 'type' twice to litellm.Cache() later. - cache_type = cache_config.pop("type") - + # Pop removes 'type' from cache_config to prevent it from being pass + cache_config.pop("type") self.client_ttl = client_ttl if redis_url is not None or (redis_host is not None and redis_port is not None): - cache_type = "redis" if redis_url is not None: cache_config["url"] = redis_url