Résumé
- Un RCE a été découvert dans le serveur GitLab et assigné à CVE-2022-2185.
- L'exploitation nécessite un compte valide, mais le comportement par défaut du serveur permet la création de nouveaux comptes avec l'approbation de l'administrateur.
- Censys Les utilisateurs peuvent trouver les serveurs GitLab avec la requête suivante Censys Search
- Consultez notre tableau de bord GitLab, qui est mis à jour toutes les 24 heures.
Introduction
Le 1er juillet 2022, CVE-2022-2185, un problème critique dans le serveur GitLab, a été rendu public, permettant à un utilisateur authentifié de créer une requête qui résulte en une exécution de code à distance (RCE). Les versions suivantes de GitLab sont concernées :
- 14.0 (corrigé dans v14.10.5)
- 15.0 (corrigé dans la v15.0.4)
- 15.1 (corrigé dans la v15.1.1)
Il est important de comprendre que pour que cet exploit réussisse, un attaquant doit disposer d'une connexion valide au service GitLab. Le service par défaut permet aux utilisateurs de s'inscrire et de créer un compte en utilisant leurs identifiants. De plus, un administrateur doit explicitement désactiver le paramètre "Require admin approval for new sign-ups" pour que l'utilisateur puisse obtenir un compte sans l'approbation préalable d'un administrateur.
Bien qu'il puisse paraître invraisemblable qu'un pirate puisse inciter un administrateur à approuver une telle demande, cela est possible. Un utilisateur distant peut toujours tirer parti de l'attaque sur des systèmes dont les informations d'identification ont été piratées, volées, divulguées ou obtenues légalement. Si l'attaque réussit, un utilisateur peut obtenir un accès au niveau du shell à l'hôte sous-jacent qui exécute le service GitLab, ce qui permet des mouvements plus permissifs à l'intérieur des ressources de la victime.
Identifier les instances de GitLab
En utilisant les mêmes méthodes pour identifier les versions de GitLab pour CVE-2021-22205, nous avons déterminé que certains noms de fichiers trouvés dans le corps de la réponse HTTP pouvaient être associés à des versions spécifiques de GitLab Server. En bref, chaque fois qu'une nouvelle version est marquée, ainsi que de nombreux autres événements, le système d'intégration continue (CI) de GitLab lance une tâche qui compile les actifs statiques. Ce travail a pour résultat que certains fichiers ont une extension de fichier unique qui peut vaguement faire correspondre le logiciel en cours d'exécution à la version originale.
Par exemple, le fichier "public/assets/application.css" semble avoir un nom de fichier généré de manière unique pour chaque version mineure du logiciel, qui comprend une chaîne de 64 octets codée ASCII-HEX ajoutée à la fin du nom de fichier.
Dans notre analyse de cette vulnérabilité spécifique, nous avons trouvé les noms de fichiers suivants dans le corps de la réponse HTTP qui peuvent correspondre à une version majeure et mineure particulière de GitLab Server :
Nom de fichier (trouvé dans le corps de la réponse HTTP)
|
Version mappée |
application-90abf7746df5cb82bca9949de6f512de7cb10bec97d3f5103299a9ce38d5b159.css |
14.0.* |
application-5cd37ee959b5338b5fb48eafc6c7290ca1fa60e653292304102cc19a16cc25e4.css |
14.1.* |
application-4f233d907f30a050ca7e40fbd91742d444d28e50691c51b742714df8181bf4e7.css |
14.2.[0-5] |
application-57e83f1a3cf7c0fe3cf2357802306688dab60cf6a30d00e14e67826070db92de.css |
14.2.[6-7] |
application-a8bf3d1210afa873d9b9af583e944bdbf5ac7c8a63f6eccc3d6795802bd380d2.css |
14.3.[0-3] |
application-ba74062de4171df6109c4c96da1ebe2b538bb6cc7cd55867cbdfba44777700e1.css |
14.3.[4-6] |
application-50d9206410f00bb00cc8f95865ab291c718e7a026e7fdc1fc9db0480586c4bc9.css |
14.4.0 |
application-775f130d36e9eb14cb67c6a63551511b87f78944cebcf6cdddb78292030341df.css |
14.4.[1-5] |
application-1832611738f1e31dd00a8293bbf90fce9811b3eea5b21798a63890dbc51769c8.css |
14.5.[0-4] |
application-8b78708916f28aa9e54dacf9c9c08d720837ce78d8260c36c0f828612567d353.css |
14.6.[0-3] |
application-cfa6748598b5e507db0e53906a7639e2c197a53cb57da58b0a20ed087cc0b9d5.css |
14.7.[0-7] |
application-1d840f0c4634c8813d3056f26cbab7a685d544050360a611a9df0b42371f4d98.css |
14.8.[0-6] |
application-003236d7e2c5f1f035dc8b67026d7583ee198b568932acd8faeac18cec673dfa.css |
14.9.[0-4] |
application-739a920f5840de93f944ec86c5a181d0205f1d9e679a4df1b9bf5b0882ab848a.css |
14.10.* |
application-1062bbba2e9b04e360569154a8df8705a75d9e17de1a3a9acd5bd20f000fec8b.css |
15.0.[0-1] |
application-a743f974bacea01ccc609dcb79247598bd2896f64377ce4a9f9d0333ab7b274e.css |
15.0.[2-4] |
application-7d0792b17e1d2ccac7c6820dda1b54020b294006d7867b7d78a05060220a0213.css |
15.1.* |
Par exemple, le fichier associé à la version 14.10.1 (une version vulnérable de GitLab) et à la version 14.10.5 (la version corrigée) a le même nom de fichier. Ce chevauchement est également le cas pour les versions 15.0.2 et 15.0.3, qui ont le même nom de fichier que la version corrigée 15.0.4. Enfin, la version 15.1.0 a le même nom de fichier que la version fixe(v15.1.1).
À l'heure où nous écrivons ces lignes (24 juillet 2022), Censys a observé 17 828 hôtes avec une version associée qui pourrait être vulnérable à cette attaque (à l'exclusion des hôtes v14.10 en raison du chevauchement des versions). Parmi ces hôtes, seuls 6 759 ont activé la création de nouveaux comptes. Malheureusement, Censys ne peut pas valider si ces hôtes requièrent l'approbation de l'administrateur pour les nouvelles inscriptions. Cependant, étant donné que ce paramètre est celui par défaut, il est fort probable qu'une approbation soit requise.
Pays |
Hôtes |
Chine |
3,646 |
États-Unis |
452 |
Corée du Sud |
447 |
Allemagne |
391 |
Russie |
280 |
Géographiquement, la plupart des hôtes exécutant une version correspondante de GitLab avec la création de compte activée se trouvent en Chine, avec 3 646 hôtes. Les États-Unis sont à la traîne avec 452 hôtes, suivis de près par la Corée du Sud avec seulement 447 hôtes.
Pour aider la communauté à surveiller ces vulnérabilités, Censys a créé un tableau de bord interactif public spécifique à GitLab, mettant à jour toutes les 24 heures les CVE-2022-2185 et CVE-2021-22205. Les utilisateurs peuvent filtrer divers champs liés à GitLab (y compris l'affichage des statistiques sur les serveurs GitLab avec la création d'un compte ouvert). Censys ajoutera de nouvelles fonctionnalités et statistiques dans les jours à venir.
Détails de la vulnérabilité
Pour plus de détails sur la vulnérabilité actuelle, un chercheur de Star Labs a écrit une analyse très complète de ce bogue particulier qui fait référence à certains des travaux originaux réalisés par un chasseur de primes nommé Vakzz sur Hackerone.
Que dois-je faire ?
- Mettre à jour vers GitLab v14.10.5, v15.0.4, ou v15.1.1.
- Censys Les clients d' ASM ont désormais accès à un nouveau risque qui identifie les services GitLab potentiellement vulnérables.
- Au minimum, un administrateur devrait désactiver la fonction de création de nouveaux comptes dans l'interface d'administration -> Paramètres -> Général -> "Restrictions d'inscription" et désélectionner l'option "Inscription activée".