GitLab vient de corriger une faille de sécurité majeure dans son système de pipelines. Cette vulnérabilité permettait à des hackers d'exécuter des tâches sous l'identité d'autres utilisateurs. La mise à jour apporte des changements importants et corrige également 13 autres problèmes de sécurité.
Considéré comme incontournable dans le monde de la gestion du développement logiciel, GitLab, qui a déjà présenté une grave faille en ce début 2024, est également connue pour la gestion de projets et l'automatisation des processus. Hélas, même les plateformes les plus robustes ne sont pas à l'abri des failles de sécurité.
C'est une vulnérabilité découverte dans le système de pipelines de GitLab qui fragilise la confidentialité et l'intégrité des projets hébergés sur la plateforme. Cette faille, identifiée comme CVE-2024-5655, permettait à des attaquants d'exécuter des pipelines en usurpant l'identité d'autres utilisateurs. L'équipe de GitLab a réagi rapidement en publiant une mise à jour correctrice, mais qui n'est pas sans imposer quelques contraintes.
Les pipelines GitLab : le cœur de l'automatisation du développement
Pour comprendre l'impact de cette faille, il faut d'abord saisir ce que sont les pipelines dans GitLab. Un pipeline est comme une chaîne de montage virtuelle pour votre code. C'est un ensemble d'étapes automatisées qui se déclenchent à chaque modification de votre projet. Ces étapes peuvent inclure la compilation du code, l'exécution de tests, ou encore le déploiement de l'application.
Imaginez un chef cuisinier qui aurait une équipe de robots pour préparer ses plats. Chaque robot a une tâche spécifique : l'un coupe les légumes, l'autre fait cuire la viande, un troisième dresse les assiettes. Le pipeline GitLab, c'est un peu la même chose, mais pour votre code. Chaque « robot » est en fait un job, une tâche spécifique à accomplir.
Ces jobs sont regroupés en étapes, que l'on appelle « stages » dans le jargon GitLab. Par exemple, vous pourriez avoir une étape « Build » pour compiler votre code, une étape « Test » pour vérifier que tout fonctionne correctement et une étape « Deploy » pour mettre votre application en ligne.
L'intérêt des pipelines, c'est qu'ils assurent une cohérence dans le processus de développement. Plus besoin de se demander si on a oublié de lancer les tests ou si la dernière version du code a bien été déployée. Tout est automatisé, ce qui réduit les erreurs humaines et accélère le rythme de développement.
De plus, les pipelines GitLab sont flexibles. Vous pouvez les configurer pour qu'ils se déclenchent à des moments précis, comme lors d'un push de code ou quand une merge request est créée. C'est un peu comme si vous pouviez dire à vos robots cuisiniers de se mettre au travail dès qu'un nouveau client entre dans le restaurant.
En bref, les pipelines GitLab sont le moteur qui fait tourner la machine du développement moderne. Ils automatisent les tâches répétitives, assurent la qualité du code et permettent aux développeurs de se concentrer sur ce qui compte vraiment : créer de meilleures applications. Un petit air du film Les Temps modernes.
31 octobre 2024 à 20h17
Des correctifs et des contraintes
La faille de sécurité découverte dans GitLab était loin d'être anodine. Elle permettait à des personnes dont les intentions n'étaient pas des meilleures de lancer des pipelines en se faisant passer pour n'importe quel utilisateur. C'est un peu comme si quelqu'un pouvait entrer dans votre cuisine et donner des ordres à vos robots cuisiniers en prétendant être vous.
Cette vulnérabilité, baptisée CVE-2024-5655, a reçu un score de gravité de 9,6 sur 10. Autant dire qu'elle était considérée comme extrêmement sérieuse. Elle touchait toutes les versions de GitLab CE/EE de 15.8 à 16.11.4, 17.0.0 à 17.0.2 et 17.1.0 à 17.1.0. En gros, si vous utilisiez GitLab, il y avait de grandes chances pour que vous soyez concerné.
Sur la brèche, GitLab a réagi en publiant rapidement des mises à jour correctives : les versions 17.1.1, 17.0.3 et 16.11.5. Mais comme souvent en informatique, résoudre un problème peut en créer d'autres. La correction de cette faille a entraîné des changements importants dans le fonctionnement de GitLab.
Désormais, les pipelines ne se déclenchent plus automatiquement quand une merge request est reciblée après la fusion de sa branche cible précédente. En clair, il faut maintenant lancer manuellement le pipeline pour exécuter l'intégration continue sur vos modifications. C'est un peu comme si vos robots cuisiniers attendaient maintenant votre signal explicite avant de se mettre au travail.
Autre changement : le jeton CI_JOB_TOKEN est maintenant désactivé par défaut pour l'authentification GraphQL à partir de la version 17.0.0. Pour accéder à l'API GraphQL, il faut désormais configurer un autre type de jeton pris en charge.
Mais ce n'est pas tout. En plus de cette faille majeure, GitLab a profité de cette mise à jour pour corriger 13 autres problèmes de sécurité. Parmi eux, trois étaient considérés comme « élevés » en matière de gravité. On parle notamment d'une vulnérabilité XSS stockée, d'une faille CSRF dans l'API GraphQL et d'un problème d'autorisation dans la fonction de recherche globale.
Mises à jour et bonnes pratiques
GitLab met à la disposition de ses utilisateurs une page de mises à jour sur son site, disponible à cette adresse : https://about.gitlab.com/update/. Clubic y ajoute ses bonnes pratiques pour vous protéger des risques de ces failles.
Mettez à jour immédiatement
Installez les versions correctives (17.1.1, 17.0.3 ou 16.11.5), selon votre version actuelle.
Revoyez l'authentification API
Si vous utilisez l'API GraphQL, configurez un nouveau type de jeton pris en charge, car le CI_JOB_TOKEN est désormais désactivé par défaut.
Adaptez vos flux de travail
La correction modifie le comportement des pipelines pour les merge requests, c'est-à-dire des modifications à appliquer sur un dépôt proposées par un utilisateur sur lequel il n'a pas les droits de modification, reciblées. Préparez-vous à lancer manuellement les pipelines dans ces cas-là.
Vérifiez vos pipelines
Examinez l'historique des pipelines pour détecter toute activité suspecte ou non autorisée.
Renforcez la sécurité globale
Profitez-en pour revoir vos pratiques de sécurité, notamment concernant les vulnérabilités XSS et CSRF mentionnées.
Formez vos équipes
Assurez-vous que tous les utilisateurs sont conscients des changements et des nouvelles bonnes pratiques à adopter.
Surveillez les annonces
Restez attentif aux communications de GitLab pour d'éventuelles mises à jour ou recommandations supplémentaires.
Sources : Bleeping Computer, GitLab