Gogs - CVE-2026-52806
Date de publication :
Il s'agit d'une vulnérabilité d'injection d'argument dans la fonction Merge() de Gogs, au niveau du traitement des fusions de type "Rebase before merging".
Gogs est un service Git auto-hébergé open source écrit en Go, conçu pour la gestion de dépôts de code source en environnement on-premise ou cloud privé.
Le nom de la branche source d'une pull request est transmis directement à la commande git rebase via process.ExecDir sans séparateur --, ce qui permet à un attaquant de nommer sa branche --exec=<commande>. Git interprète alors cette valeur comme le flag --exec, qui exécute la commande spécifiée via sh -c après chaque commit rejoué. L'exploitation est entièrement réalisable depuis le propre dépôt de l'attaquant, sans interaction avec d'autres utilisateurs.
Elle permet à un attaquant authentifié d'obtenir une exécution de code arbitraire à distance avec les droits du processus Gogs sur le serveur, et une compromission complète de l'instance.
Informations
La faille est activement exploitée : Non
Un correctif existe : Oui
Une mesure de contournement existe : Oui
Exécution de code arbitraire (à distance)
Exploitation
CWE-77 : Improper Neutralization of Special Elements used in a Command ('Command Injection')
Détails sur l'exploitation
• Vecteur d'attaque : Réseau
• Complexité de l'attaque : Faible
• Privilèges nécessaires pour réaliser l'attaque : Authentification utilisateur simple
• Interaction d'un utilisateur ayant accès au produit est-elle nécessaire : Non
• L'exploitation de la faille permet d'obtenir des droits privilégiés : Oui
Preuve de concept
Une preuve de concept est disponible en sources ouvertes.
Systèmes ou composants affectés
Gogs versions antérieures à 0.14.3 (toutes versions supportant la fusion "Rebase before merging")
Contournement provisoire
• Restreindre la création de dépôts (MAX_CREATION_LIMIT = 0 dans app.ini) pour bloquer le vecteur d'attaque principal