Gately v0.6.1 publié
30 octobre 2026
Cette version contient un correctif de sécurité : tous les utilisateurs qui ont activé la gestion de Docker et utilisent des comptes ou des jetons d’API en lecture seule devraient mettre à niveau rapidement. Elle traite aussi #35, #37, #38 et #40, et ajoute une politique de sécurité.
Télécharger v0.6.1 · GitHub Release · Avis de sécurité GHSA-m6h7-mm5r-r53q
Correctif de sécurité : l’accès Docker en lecture seule exposait les données sensibles des conteneurs
Dans v0.6.0.4 et les versions antérieures, les comptes en lecture seule et les jetons d’API disposant uniquement de la permission docker:read pouvaient lire en clair les variables d’environnement, Command, Entrypoint et les arguments de démarrage d’un conteneur via GET /api/docker/containers/{id}, et la liste des processus affichait les lignes de commande complètes ; les mots de passe de bases de données et clés d’API courants étaient ainsi accessibles à des identités en lecture seule. Merci à Yousef Alturki (@YousefAlturki) pour ce signalement responsable.
Après le correctif :
- lorsqu’une identité sans droit d’écriture Docker consulte un conteneur, les variables d’environnement n’affichent que leur nom, et les valeurs, Command, Entrypoint, les arguments de démarrage ainsi que les arguments de commande de la liste des processus s’affichent comme
********; les variables d’environnement, Cmd, Entrypoint et les commandes de l’historique de construction dans les détails d’une image sont masqués de la même façon ; - les valeurs en clair sont désormais fournies par
GET /api/docker/containers/{id}/secrets, qui exigedocker:write. Le formulaire de modification les charge automatiquement pour les administrateurs, et les champs soumis avec l’espace réservé conservent leur valeur d’origine ; - le nom ou le préfixe d’ID d’un conteneur dans une requête est d’abord résolu en ID complet, si bien que la protection du conteneur dans lequel Gately s’exécute ne peut plus être contournée par son nom. La modification et la recréation lors d’une mise à niveau traitent toujours l’ancien conteneur par son ID complet, ce qui corrige la suppression du nouveau conteneur pendant le nettoyage et l’impossibilité de revenir en arrière après un échec lors d’un appel par nom. Démarrer, arrêter ou supprimer le conteneur pendant sa recréation renvoie 409.
Après la mise à niveau, vérifiez si des jetons d’API en lecture seule ont été remis à des tiers non fiables et, si nécessaire, renouvelez les secrets de vos conteneurs. Consultez SECURITY.md pour savoir comment signaler une vulnérabilité, via le signalement privé de vulnérabilités de GitHub ou par e-mail.
Réseau d’émission des certificats
Les certificats disposent d’une nouvelle option « Réseau » (#35) : « IPv4 uniquement » ou « IPv6 uniquement » fait que l’accès à la CA, les appels à l’API du fournisseur DNS et la vérification de la prise en compte des enregistrements TXT n’utilisent que cette famille d’adresses. Quand l’hôte a une adresse IPv6 mais qu’IPv6 ne fonctionne pas réellement, la vérification de propagation expirait en interrogeant les serveurs DNS faisant autorité et l’émission échouait ; il suffit de choisir « IPv4 uniquement ». En passant par un proxy tel que HTTPS_PROXY, la connexion au proxy lui-même n’est pas limitée par cette option. Voir Certificats SSL · Réseau d’émission.
Protection du conteneur de Gately lui-même
Sur la page Docker, la mise à niveau, la mise à niveau groupée, la modification avec recréation, ainsi que l’exécution de up ou la suppression du projet Compose auquel appartient Gately, arrêtent toutes d’abord l’ancien conteneur. Le processus Gately s’arrêtait avec lui, la recréation ne se terminait jamais et le conteneur restait arrêté (#38). Ces opérations sont désormais refusées pour son propre conteneur : les boutons sont grisés avec une invite à effectuer la mise à jour sur l’hôte, et la mise à niveau groupée l’ignore. Lors du redémarrage du projet Compose auquel appartient Gately, son propre conteneur est redémarré en dernier.
Les notifications et les journaux suivent la langue de l’interface
Lorsque la langue du serveur est « Suivre le système », Gately utilise dans l’ordre la langue indiquée par GATELY_LANG puis LANG. Sous Docker, fnOS et OpenWrt, aucune des deux n’est généralement définie, et les notifications retombaient donc en anglais (#40). Elles suivent maintenant la langue de l’interface lors de la dernière connexion de l’administrateur ou du dernier changement dans la barre supérieure ; les connexions des comptes en lecture seule ne la modifient pas. La « Source » d’une notification est traduite lorsqu’il s’agit d’un nom généré par le programme, tandis que les noms de tâche saisis par les utilisateurs restent tels quels. Les journaux en anglais portant des préfixes comme [warn] [auth] ne mélangent plus chinois et anglais.
Configurer le site par défaut
Lorsqu’un écouteur des Services Web n’a pas encore de site par défaut, sa carte affiche un nouveau bouton « Configurer le site par défaut » (#37) pour définir directement le traitement des requêtes qui ne correspondent à aucun domaine.
Notes de mise à niveau
- Docker : récupérez la nouvelle image et recréez le conteneur. OpenWrt : installez le nouveau
.apk/.ipkpar-dessus l’ancien, et installez aussiluci-app-gatelyde la même version si vous voulez la page LuCI. fnOS : installez manuellement le nouveau.fpkdans le Centre d’applications. Les autres installations peuvent être mises à niveau en ligne dans « Paramètres système ».