Description
LiteLLM prior to 1.83.14 allows an authenticated internal_user to create API keys with access to routes that their role does not permit. When generating a key, the allowed_routes field is stored without verifying that the specified routes fall within the user's own permissions. A key created with access to admin-only routes can then be used to reach those routes successfully, bypassing the role-based access controls that would otherwise block the request, enabling full privilege escalation from internal_user to proxy_admin.
Problem types
Product status
Any version before 1.83.14
Credits
Fenix Qiao (aka 13ph03nix) from Obsidian Security
References
gist.github.com/13ph03nix/9ec616e1fdc77b3673509c60206e827f
huntr.com/bounties/8e75edfb-ff05-4e63-bfca-2d93d03fb3b9
github.com/BerriAI/litellm/releases/tag/v1.83.14-stable
github.com/...ommit/d910a95661fce3cdd36f3b06c03ecf9c46c6457c
github.com/...ommit/2220f3076ac89bd2a2e3439acf57dcfbec2434c9
github.com/...ommit/5190bd07eb23a037745d86328096f54378f1614a
www.vulncheck.com/...ilege-escalation-via-api-key-generation