We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Any internal_user_viewer user can GET /user/list, which returns the password field for all users including admins.
internal_user_viewer
/user/list
password
Although this field may be hashed by SHA256, an attacker can directly use this to log into the UI, as implemented in login.
This is definitely a vulnerability but I will just post it here since it is too trivial for anyone to find.
Other endpoints such as /user/info also return the password field, so we'd better fix them as well.
/user/info
N/A
Yes
main
No response
The text was updated successfully, but these errors were encountered:
In which version was this introduced?
Any internal_user_viewer user can GET /user/list
FWIW, the docstring for get_users says "Currently - admin-only endpoint." I didn't see where that's enforced from a quick look.
Sorry, something went wrong.
@chrisranderson Seems that there are lots of checking in route_checks.py but unfornately checks for /user/list are missing.
FYI, I am using nginx to workaround this vulnerability by enforcing additional route checking:
upstream litellm { server ...; } map $auth_result $litellm_only_admin { admin litellm; default litellm/404; } server { # llm api routes location ~ ^(/v\d+)?/(chat/|images/|audio/|batches/|files/|completions$|embeddings$|models$) { proxy_pass http://litellm; proxy_buffering off; } # ui routes location ~ ^/(login|ui/.*|sso/get/ui_settings|team/list|user/info|global/spend/(logs|keys|models|provider)|global/activity(/model)?|(model|model_group)/info)$ { include includes/auth.conf; proxy_pass http://litellm; } # allow admin user to view all routes location / { include includes/auth.conf; proxy_pass http://$litellm_only_admin; } ... }
No branches or pull requests
What happened?
Any
internal_user_viewer
user can GET/user/list
, which returns thepassword
field for all users including admins.Although this field may be hashed by SHA256, an attacker can directly use this to log into the UI, as implemented in login.
This is definitely a vulnerability but I will just post it here since it is too trivial for anyone to find.
Other endpoints such as
/user/info
also return thepassword
field, so we'd better fix them as well.Relevant log output
Are you a ML Ops Team?
Yes
What LiteLLM version are you on ?
main
Twitter / LinkedIn details
No response
The text was updated successfully, but these errors were encountered: