Lire la description complète
GPUStack est un gestionnaire de clusters GPU open source destiné à la mise en service de modèles d’IA et à la création d’instances GPU. Avant la version 2.2.0, la fonction `get_current_user` dans le fichier `gpustack/api/auth.py` considérait une source de requête en boucle fermée comme l’administrateur intégré lorsque la valeur de `force_auth_localhost` était `false`, ce qui correspondait à la valeur par défaut. Une requête distante pouvait sembler provenir de 127.0.0.1 car la fonction `client_ip_getter` acceptait un pair de proxy inverse sur le même hôte ou une valeur de bouclage `X-GPUStack-Real-IP` fournie par le client. Cette faille permettait un accès administratif non authentifié, notamment pour modifier des utilisateurs et des modèles, créer des clés API d’administrateur persistantes, divulguer des secrets relatifs aux nœuds de travail et aux fournisseurs de cloud, ainsi qu’exécuter du code via la requête POST /v2/inference-backends/from-yaml. Des exploits ont été observés en conditions réelles sur un déploiement de la version 2.1.1. Ce problème a été corrigé dans la version 2.2.0.
Texte d'origine (anglais)
GPUStack is an open-source GPU cluster manager for AI model serving and GPU instance provisioning. Prior to 2.2.0, get_current_user in gpustack/api/auth.py treated a loopback request source as the built-in administrator when force_auth_localhost was false, which was the default. A remote request could appear to originate from 127.0.0.1 because client_ip_getter accepted a same-host reverse proxy peer or a client-supplied X-GPUStack-Real-IP loopback value. The bypass allowed unauthenticated administrative access, including user and model changes, persistent administrator API-key creation, disclosure of worker and cloud-provider secrets, and code execution through POST /v2/inference-backends/from-yaml. Exploitation was observed in the wild against a 2.1.1 deployment. This issue is fixed in version 2.2.0.