
CVE-2026-60004 — RCE pré-auth Gitea via injection de hook diffpatch
Ce dépôt contient un outil de preuve de concept pour CVE-2026-60004, un vecteur d'exécution de code à distance (RCE) authentifiée ou non authentifiée affectant certaines versions de Gitea via la technique d'injection de hook diffpatch. L'implémentation principale est un programme Go unique qui réalise les flux de détection et d'exploitation.
Ce PoC démontre des techniques d'exploitation qui peuvent compromettre des systèmes distants. Il est fourni uniquement à des fins de recherche, de test et de défense. N'exécutez pas cet outil contre des systèmes que vous ne possédez pas ou pour lesquels vous n'avez pas l'autorisation explicite de tester. L'auteur et les contributeurs ne sont pas responsables d'une mauvaise utilisation.
Depuis la racine du dépôt, exécutez :
go build -o cve-2026-60004-poc cve-2026-60004-poc.go
Le binaire compilé prend en charge plusieurs modes : full-auto, semi-auto, manual et check.


./cve-2026-60004-poc --url http://target:3000 --mode check
./cve-2026-60004-poc --url http://target:3000 --mode full-auto
./cve-2026-60004-poc --url http://target:3000 --mode semi-auto --user attacker --pw 'P@ssw0rd'
./cve-2026-60004-poc --url http://target:3000 --mode manual --user attacker --pw 'P@ssw0rd' --repo myrepo
./cve-2026-60004-poc --url http://target:3000 --mode manual --user attacker --pw 'P@ssw0rd' --repo myrepo --cmd "whoami; id"
--url (obligatoire) : URL de base Gitea cible (ex. http://10.0.0.1:3000)--mode : full-auto | semi-auto | manual | check (défaut : full-auto)--user, --pw : Identifiants pour les modes semi-auto/manual--repo : Nom du dépôt (pour le mode manual)--branch : Nom de la branche (défaut : main)--cmd : Commande à exécuter sur la cible (défaut : cat /etc/passwd)check exécute des vérifications non intrusives pour détecter Gitea et sonder la présence du point de terminaison diffpatch.full-auto tente d'enregistrer un nouvel utilisateur (nécessite une inscription ouverte), de créer un dépôt, de délivrer la charge utile diffpatch malveillante et de récupérer la sortie du hook injecté.semi-auto utilise les identifiants fournis pour créer un dépôt et poursuivre les étapes d'exploitation.manual nécessite un utilisateur et un dépôt existants ; il tente uniquement la livraison de l'exploit et, éventuellement, la récupération de la sortie.InsecureSkipVerify sur true pour les connexions TLS afin de maximiser la compatibilité lors des tests ; n'utilisez pas ce comportement en production./api/v1/version, /user/sign_up, /api/v1/user, /api/v1/user/repos et /api/v1/repos/:owner/:repo/diffpatch.Les contributions doivent se limiter aux améliorations défensives, à la documentation et aux correctifs non liés à l'exploitation. Ne soumettez pas de modifications qui rendent l'outil plus destructif.
Ce dépôt est fourni à des fins de recherche et de défense. Aucune licence n'est explicitement incluse ; si vous avez besoin d'une licence, ajoutez-en une et assurez-vous qu'elle est compatible avec l'utilisation prévue.
Auteur : Gagaltotal666 - GhostGTR666
Ce PoC a été préparé pour démontrer la vulnérabilité et aider les défenseurs à la détecter et à l'atténuer.
--count : Nombre de requêtes diffpatch à envoyer (min 2)--simple-hook : Utiliser un hook simple (ignore la charge utile avancée)--no-retrieve : Ignorer la récupération de la sortie--proxy : Proxy HTTP (ex. http://127.0.0.1:8080)--verbose, -v : Sortie détaillée (verbose)--quiet, -q : Mode silencieux ; afficher uniquement la sortie de la commande--force : Ignorer les vérifications de validation Gitea