,

Forgejo v16.0 : durcissement SSRF, notifications par dépôt et intégrations Actions via JWT

Close-up of code running on computer screens in a modern server room, illustrating a self-hosted Git service like Forgejo

Read this article in English: Forgejo v16.0 Ships SSRF Hardening, Granular Notifications, and JWT-Based Actions Integrations

Forgejo, le fork communautaire de Gitea, a publié la version 16.0 le 16 juillet 2026. C’est une version standard, pas une build LTS : le support s’arrête donc le 29 octobre 2026, conformément au rythme trimestriel du projet (voir les notes de version officielles). La mise à jour s’ouvre sur trois changements majeurs destinés à renforcer la sécurité par défaut, avant d’ajouter une série de fonctionnalités collaboratives, des corrections sur les pull requests, et des capacités élargies côté Actions et API.

Changements majeurs de Forgejo v16.0

Durcissement anti-SSRF pour les miroirs Git

Forgejo impose désormais http.followRedirects=false sur les opérations de miroir Git. Les administrateurs qui s’appuyaient sur ALLOWED_DOMAINS, LOCKED_DOMAINS ou ALLOW_LOCALNETWORKS pour contrôler les sources autorisées des miroirs avaient un problème : ces restrictions pouvaient être contournées via une redirection HTTP. Désactiver le suivi des redirections par défaut referme cette faille.

Suppression du nettoyage EXIF sur les avatars

Le nettoyage automatique des métadonnées EXIF ajouté aux uploads d’avatars depuis la v13.0 a disparu. D’après les notes de version, cette fonctionnalité reposait sur une bibliothèque sous licence AGPL intégrée par erreur ; pour garder une licence propre, l’équipe a préféré la retirer. Si vous comptiez sur ce nettoyage pour préserver votre vie privée, il faudra retirer les EXIF vous-même avant l’upload.

La confiance du reverse proxy doit désormais être déclarée explicitement en conteneur

Les images de conteneur officielles de Forgejo réglaient jusqu’ici REVERSE_PROXY_TRUSTED_PROXIES sur * par défaut. Combinée à ENABLE_REVERSE_PROXY_AUTHENTICATION=true et à un port Forgejo exposé sans reverse proxy correctement configuré devant lui, cette configuration permettait à un attaquant d’usurper n’importe quel utilisateur via l’en-tête X-WebAuth-User. À partir de la v16.0, Forgejo exige une valeur explicite pour REVERSE_PROXY_TRUSTED_PROXIES : le joker par défaut n’est plus accepté silencieusement.

On retrouve un schéma similaire avec CVE-2026-20896, une faille d’authentification révélée cette semaine dans l’image Docker officielle de Gitea, le projet dont Forgejo est issu depuis 2022. Ce ne sont pas deux événements identiques pour autant : celle de Gitea était une vulnérabilité activement divulguée dans un réglage par défaut déjà livré, tandis que le changement de Forgejo est préventif, il referme un trou théorique similaire avant que quiconque n’ait eu à l’exploiter. Dans les deux cas, si vous faites tourner Gitea ou Forgejo derrière un reverse proxy, il est utile de prendre une minute pour vérifier que REVERSE_PROXY_TRUSTED_PROXIES est correctement configuré.

Nouvelles fonctionnalités

  • Notifications granulaires par dépôt : les abonnés peuvent maintenant suivre les Issues, les Pull Requests et les Releases indépendamment, au lieu de tout recevoir en bloc ou rien du tout.
  • Une barre de progression pendant les migrations de dépôts, pour que les migrations groupées d’issues et de pull requests ne laissent plus les administrateurs face à un écran vide sans savoir si quelque chose se passe.
  • Les avatars sont livrés en deux tailles réduites en plus de l’original, ce qui devrait alléger la bande passante et accélérer le chargement des pages.
  • Une boîte de dialogue simplifiée pour ajouter des membres à une organisation, avec la possibilité d’assigner quelqu’un à plusieurs équipes en une seule étape.

Améliorations des pull requests

  • La vue des commits a été repensée pour plus de lisibilité et fonctionne correctement sur petits écrans.
  • Les relecteurs peuvent sélectionner plusieurs lignes d’un coup pour un seul commentaire, en maintenant Shift et en cliquant sur le bouton d’ajout de commentaire.
  • D’anciens bugs sur l’emplacement des commentaires de relecture sont enfin corrigés, grâce à une implémentation de git blame --reverse qui continue de suivre une ligne même après qu’elle a été déplacée ou supprimée ailleurs dans le fichier.

Améliorations de Forgejo Actions

  • Les exécutions de workflows peuvent être priorisées manuellement, pour qu’un administrateur puisse faire passer un job urgent devant la file d’attente.
  • Un nouveau système d’« Authorized Integrations » propose une authentification basée sur JWT pour les opérations API et Git, en alternative aux jetons statiques, utile pour des systèmes externes comme AWS, GitHub Actions ou GitLab CI qui doivent dialoguer avec une instance Forgejo sans conserver de secrets de longue durée.
  • Les anciennes exécutions de workflows, logs et artefacts compris, peuvent être supprimées via l’interface ou l’API.
  • La syntaxe cron des workflows planifiés gère maintenant les fuseaux horaires.

Ajouts côté API et administration

  • De nouveaux endpoints couvrent les logs de workflows, la gestion des artefacts et l’annulation des exécutions.
  • Les organisations exposent aussi leur date de création via l’API.
  • Les pull requests peuvent être recherchées par branche source ou cible.
  • Les administrateurs peuvent gérer directement les jetons d’accès personnels des utilisateurs.
  • La liste des utilisateurs peut être filtrée selon le statut d’authentification à deux facteurs.

Rythme des versions

Forgejo publie une version majeure tous les trois mois. La v16.0 arrive le jour même où la v11.0, la précédente branche LTS, atteint la fin de son support : le 16 juillet 2026. La LTS actuelle reste la v15.0, supportée jusqu’en juillet 2027, et la prochaine version majeure, la v17.0, est attendue pour le 15 octobre 2026.

Pour en savoir plus, consultez les fiches Forgejo et Gitea de selfhostlab. Forgejo est développé comme un fork communautaire de Gitea depuis 2022.

Related guides