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

Risques

Exécution de code arbitraire (à distance)

Exploitation

La vulnérabilité exploitée est du type
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

•   Désactiver l'inscription ouverte (DISABLE_REGISTRATION = true dans app.ini) pour limiter l'accès aux comptes de confiance uniquement
•   Restreindre la création de dépôts (MAX_CREATION_LIMIT = 0 dans app.ini) pour bloquer le vecteur d'attaque principal

Solutions ou recommandations

Gogs versions antérieures à 0.14.3 (toutes versions supportant la fusion "Rebase before merging")