veilletech.fr
11 sept. Feed du jour
#01 SÉCURITÉ Faille

Forgejo : un template de dépôt exécute du code

Un template, c'est du code que vous exécutez chez vous.

Forgejo 16.0.4 et 15.0.8, publiées le 10 septembre, corrigent une faille critique : un template de dépôt malveillant pouvait fabriquer un dossier .git que Git adoptait à l'initialisation, d'où lecture de fichiers et exécution de code sur l'hôte. Deux autres trous d'autorisation sont fermés dans la même livraison.

2 min de lectureintermédiairevidéo 1:21
Partager
Sommaire4 sections
  1. Ce qui se passe
  2. Pourquoi ça compte
  3. Ce que la même livraison corrige aussi
  4. À retenir

Ce qui se passe

Forgejo a publié le 10 septembre deux versions correctives, 16.0.4 et 15.0.8, une par branche maintenue. Toutes deux portent le même correctif marqué Critical : une exécution de code à distance sur l'hôte, déclenchée par la création d'un dépôt à partir d'un template. Sont donc concernées toutes les 16.0.x jusqu'à 16.0.3 et les 15.0.x jusqu'à 15.0.7.

La séquence normale est simple. Quand un utilisateur crée un dépôt depuis un template, Forgejo clone le template, supprime son dossier .git, remplace les variables dans les fichiers listés dans .forgejo/template, puis lance l'initialisation d'un nouveau dépôt Git. Le problème : l'expansion des variables pouvait servir à recréer un dossier .git avant cette dernière étape, et Git l'adoptait tel quel, avec tout ce qu'il contenait.

template malveillant16.0.4 / 15.0.8Clone du templateSuppression de .gitExpansion des variablesfichiers de.forgejo/templateNouveau dossier .gitfabriqué par l'expansiongit init adopte le dossierLecture de fichiers etprocessus lancés surl'hôte.git supprimé à nouveaugit init propre

Un template malveillant permettait ainsi de lire des données arbitraires sur le serveur et d'y lancer des processus. Le correctif est aussi court que la faille : après l'expansion, tout dossier .git présent est supprimé avant l'initialisation.

Pourquoi ça compte

Sur une forge ouverte aux inscriptions, n'importe quel compte peut marquer un dépôt comme template, et n'importe quel utilisateur peut en instancier un. Le vecteur ne demande ni droit particulier ni intervention d'un administrateur. Forgejo est par ailleurs la forge que beaucoup de développeurs indépendants et de petites équipes hébergent eux-mêmes, souvent sans équipe sécurité derrière.

Les notes de version n'attribuent pas encore d'identifiant CVE et ne disent pas si la faille a été exploitée.

Ce que la même livraison corrige aussi

À retenir

Mettre à jour vers 16.0.4 ou 15.0.8 dès aujourd'hui. Sur une instance ouverte aux inscriptions, vérifier entre-temps qui a créé des dépôts depuis des templates, et relire ces dépôts.

Source : Forgejo 16.0.4, notes de version (et 15.0.8)