mirror of
https://github.com/BerriAI/litellm.git
synced 2026-09-16 23:41:43 +00:00
* fix(proxy): authorize /health/test_connection against loaded deployment's team_id (VERIA-441) POST /health/test_connection looked up a deployment by request-supplied model_info.id, dumped its litellm_params (including api_key) into the outbound probe, merged request params over it, and then authorized the call against the caller-supplied model_info.team_id. A team admin could pass another team's deployment id together with their own team_id and an attacker-controlled api_base, sending the victim team's provider key to that URL. Capture the loaded deployment's model_info alongside its litellm_params in both the id-lookup and the model_name fallback paths, and pass that captured value to can_user_make_model_call. When no deployment is loaded (caller is probing fresh, request-supplied credentials), keep using the request body's model_info; no foreign deployment is in scope and the existing role check still requires admin or team-admin. Add two regression tests that wrap (not mock) ModelManagementAuthChecks.can_user_make_model_call, one per resolution path, asserting HTTP 403 and that the auth check was reached with the loaded deployment's team_id. Both fail on the pre-fix code. * test(health): add positive-path regression through real auth (VERIA-441) The two deny tests already exercise the real (wrapped) ModelManagementAuthChecks. Add a matching positive-path test so a mutation that swaps the auth team_id for a deny-all value on the legit path also fails: loaded deployment owned by team-X, caller admin of team-X -> asserts HTTP 200 and that the auth check ran with the LOADED deployment's team_id. * refactor(test): rename health endpoint tests for clarity (VERIA-441) Rename test functions and variables from attacker/victim/owner framing to neutral team-a/team-b terminology. Update docstrings to remove exploit-specific language. Tests remain functionally identical, covering deny paths (cross-team deployments) and the positive path (same-team deployments). |
||
|---|---|---|
| .. | ||
| test_graceful_shutdown_endpoints.py | ||
| test_health_endpoints.py | ||