Gitea - CVE-2026-60004
Date de publication :
Il s'agit d'une vulnérabilité dans le point de terminaison diffpatch de l'API REST de Gitea.
Gitea est un service Git auto-hébergé et open-source, écrit en Go, qui propose l'hébergement de dépôts, le suivi de tickets et la revue de code via une interface web.
Ce point de terminaison applique un correctif (patch) fourni par l'utilisateur au sein d'un clone temporaire nu (bare) du dépôt. L'envoi d'un même correctif à deux reprises provoque une collision add/add que Git résout via son mécanisme de repli à trois voies, lequel extrait le fichier indexé sur le disque malgré l'usage de l'option --cached. Dans un dépôt nu, la racine correspond au répertoire $GIT_DIR, ce qui permet à un fichier exécutable nommé hooks/post-index-change, inclus dans le correctif, de devenir un hook Git actif. Git invoque ensuite ce hook lors de l'écriture de l'index. Un compte qui dispose d'un accès en écriture sur un dépôt suffit à livrer ce correctif malveillant, et l'inscription ouverte par défaut sur une instance permet à un visiteur non authentifié d'obtenir cet accès en créant simplement un compte puis un dépôt.
Elle permet l'exécution de commandes arbitraires avec les privilèges du compte système qui exécute le service Gitea.
Informations
La faille est activement exploitée : Oui
Un correctif existe : Oui
Une mesure de contournement existe : Oui
Exécution de code arbitraire (à distance)
Exploitation
CWE-94 : Improper Control of Generation of Code ('Code 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 : Aucun
• 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
Gitea versions 1.17 jusqu'à 1.27.0
Contournement provisoire
• Restreindre la création de dépôts,
• Limiter les permissions d'écriture sur les dépôts,
• Auditer les dépôts Git à la recherche de hooks non autorisés.