Une faille de GitLab permettait d’exécuter du code

Une vulnérabilité critique de GitLab permettait l’exécution de code à distance. Le chercheur qui a découvert cette faille a reçu une récompense de 18 500€.

La faille a été signalée à GitLab par le développeur de logiciels William Bowling via la plate-forme HackerOne le 23 mars. Elle a ensuite été révélée cette semaine après avoir été patchée dans la version 12.9.1 de GitLab.

gitlab

La vulnérabilité en question est une faille de traversée de chemin dans GitLab, qui a commencé comme un gestionnaire de dépôt Git sur le Web, mais s’est transformé en espace de gestion DevOps. Une traversée de chemin est une faille de sécurité Web qui permet à un pirate de lire des fichiers arbitraires sur le serveur qui exécute une application. Pour cette faille particulière, la possibilité de lire des fichiers arbitraires sur le serveur donnerait aux pirates un accès aux jetons, aux données privées, aux configurations et plus encore.

Plus précisément, la faille se trouvait dans la fonction UploadsRewriter de GitLab, qui est utilisée pour dupliquer des fichiers. UploadsRewriter ne vérifie pas le nom et le chemin d’accès du fichier, ce qui permet de copier des fichiers arbitraires sans restriction.

“Comme il n’y a aucune restriction sur ce que peut être le fichier, la traversée de chemin peut être utilisée pour copier n’importe quel fichier”, a déclaré Bowling dans son rapport de bug-bounty. “Le fichier ou le chemin d’accès doit être validé avant de copier les fichiers.”

Bowling a ensuite poussé la faille un peu plus loin, en montrant comment elle pourrait être exploitée pour lancer une attaque d’exécution de code à distance. Une fois que la faille de lecture de fichiers arbitraires est exploitée, a-t-il dit, elle peut être utilisée pour récupérer le secret_key_base du service /opt/gitlab/embedded/service/gitlab-rails/config/secrets.yml.

Le secret_key_base est utilisé pour dériver des clés qui sont utilisées pour générer et vérifier les cookies chiffrés ou signés. Une fois que les attaquants ont accédé à secret_key_base, ils peuvent manipuler ces services de cookies pour envoyer des cookies au serveur et exécuter du code.

gitlab

GitLab a pris connaissance du problème et l’a transmise à son équipe d’ingénieurs, donnant à Bowling une prime initiale de 924€ pour ses trouvailles avant de finalement lui donner une récompense de 18 500€.

GitLab collabore beaucoup avec les chercheurs

GitLab a annoncé en Décembre qu’ils avaient attribué un total de 523 172€ en primes de failles de sécurité à 171 chercheurs qui ont signalé des vulnérabilités valides au cours de la dernière année. GitLab a lancé son programme de bug-bounty en 2018, et selon Juan Broullon, ingénieur principal de la sécurité des applications de la société, ils avaient reçu un total de 1378 rapports venant de 513 pirates informatiques à l’époque.

Si cet article vous a plu, jetez un œil à notre article précédent.