Researcher Publishes GitLab RCE PoC Letting Authenticated Users Run Commands as Git
Mis à jour :
Vulnérabilité RCE critique dans GitLab via la bibliothèque Oj
Une faille d’exécution de code à distance (RCE) a été identifiée dans GitLab, permettant à tout utilisateur authentifié disposant de droits d’écriture sur un projet d’exécuter des commandes avec les privilèges de l’utilisateur git. Bien qu’un correctif soit disponible depuis le 10 juin, celui-ci n’avait pas été classé comme une mise à jour de sécurité, rendant son installation non prioritaire pour de nombreux administrateurs.
Points clés :
- Origine de la faille : La vulnérabilité exploite deux erreurs de corruption mémoire dans la bibliothèque Ruby
Oj(analyseur JSON écrit en C), utilisées par le moteur de rendu de notebooks de GitLab (ipynbdiff). - Méthode d’attaque : Un attaquant téléverse des fichiers
.ipynb(Jupyter notebooks) spécialement conçus pour provoquer une fuite de mémoire (heap pointer) puis corrompre la pile, permettant de rediriger le flux d’exécution verssystem(). - Impact : Exécution de commandes arbitraires. Selon l’isolation de l’instance, cela peut compromettre le code source, les secrets d’application, les identifiants de services et les données CI/CD.
- Absence de transparence : GitLab n’a pas publié de CVE ni de score CVSS pour cette vulnérabilité, ce qui a pu retarder les correctifs dans les environnements auto-hébergés.
Vulnérabilités :
- Deux vulnérabilités de corruption mémoire dans la bibliothèque Oj (version 3.17.1 et inférieures). Aucune CVE n’a été officiellement attribuée par GitLab à ce jour.
Recommandations :
- Mise à jour immédiate : Appliquer les correctifs GitLab vers les versions 18.10.8, 18.11.5 ou 19.0.2 au minimum.
- Vérification : Contrôler spécifiquement la version du composant
Webservice(Puma) au sein des images de déploiement, car la version des charts Helm ou de l’opérateur ne reflète pas toujours la réalité du binaire en exécution. - Environnements non supportés : Les instances utilisant des versions antérieures à 15.2 ne bénéficiant plus de backports de sécurité, une mise à niveau complète vers une branche supportée est impérative.
