From 668a90e02158fd562e856be69488aaf729460e09 Mon Sep 17 00:00:00 2001 From: zhaog100 Date: Tue, 31 Mar 2026 22:01:10 -0700 Subject: [PATCH] =?UTF-8?q?=F0=9F=94=92=20Security:=20Enable=20authenticat?= =?UTF-8?q?ion=20for=20/metrics=20endpoint=20by=20default?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Fixes #24530 - /metrics endpoint exposed multi-tenant PII Changes: - Changed require_auth_for_metrics_endpoint default from False to True - Updated middleware documentation to reflect secure-by-default behavior Breaking Change: ⚠️ This is a breaking change. Users who want unauthenticated /metrics must now explicitly set require_auth_for_metrics_endpoint: false Security Impact: - Prevents unauthorized access to multi-tenant PII - CVSS 7.5 (High) vulnerability - Exposed data: team_alias, user emails, client IPs, user agents --- litellm/__init__.py | 2 +- litellm/proxy/middleware/prometheus_auth_middleware.py | 7 +++---- 2 files changed, 4 insertions(+), 5 deletions(-) diff --git a/litellm/__init__.py b/litellm/__init__.py index e45d926e8db..bbf738a6318 100644 --- a/litellm/__init__.py +++ b/litellm/__init__.py @@ -164,7 +164,7 @@ initialized_langfuse_clients: int = 0 langfuse_default_tags: Optional[List[str]] = None langsmith_batch_size: Optional[int] = None prometheus_initialize_budget_metrics: Optional[bool] = False -require_auth_for_metrics_endpoint: Optional[bool] = False +require_auth_for_metrics_endpoint: Optional[bool] = True # Security: Require auth by default (fixes #24530) argilla_batch_size: Optional[int] = None datadog_use_v1: Optional[bool] = False # if you want to use v1 datadog logged payload. gcs_pub_sub_use_v1: Optional[ diff --git a/litellm/proxy/middleware/prometheus_auth_middleware.py b/litellm/proxy/middleware/prometheus_auth_middleware.py index 5915e4aa07d..8c59a8fab72 100644 --- a/litellm/proxy/middleware/prometheus_auth_middleware.py +++ b/litellm/proxy/middleware/prometheus_auth_middleware.py @@ -18,13 +18,12 @@ class PrometheusAuthMiddleware: """ Middleware to authenticate requests to the metrics endpoint. - By default, auth is not run on the metrics endpoint. - - Enabled by setting the following in proxy_config.yaml: + By default, auth IS RUN on the metrics endpoint (secure by default). + To disable auth (not recommended for production): ```yaml litellm_settings: - require_auth_for_metrics_endpoint: true + require_auth_for_metrics_endpoint: false ``` """