Gately v0.6.1 veröffentlicht
- Oktober 2026
Diese Version enthält eine Sicherheitskorrektur. Alle, die die Docker-Verwaltung aktiviert haben und Konten oder API-Tokens mit Nur-Lese-Rechten verwenden, sollten bald aktualisieren. Außerdem werden #35, #37, #38 und #40 behoben, und es gibt jetzt eine Sicherheitsrichtlinie.
v0.6.1 herunterladen · GitHub Release · Sicherheitshinweis GHSA-m6h7-mm5r-r53q
Sicherheitskorrektur: Docker-Leserechte gaben vertrauliche Container-Daten preis
In v0.6.0.4 und früher konnten Konten mit Nur-Lese-Rechten und API-Tokens mit ausschließlich der Berechtigung docker:read über GET /api/docker/containers/{id} Umgebungsvariablen, Command, Entrypoint und Startargumente eines Containers im Klartext lesen, und die Prozessliste zeigte vollständige Befehlszeilen. Übliche Datenbankpasswörter und API-Schlüssel waren dadurch für Nur-Lese-Identitäten zugänglich. Vielen Dank an Yousef Alturki (@YousefAlturki) für die verantwortungsvolle Meldung.
Nach der Korrektur:
- Sieht sich eine Identität ohne Docker-Schreibrecht einen Container an, zeigen Umgebungsvariablen nur ihren Namen; Werte, Command, Entrypoint, Startargumente und die Befehlsargumente in der Prozessliste erscheinen als
********. Umgebungsvariablen, Cmd, Entrypoint und Befehle der Build-Historie in den Image-Details werden ebenso ausgeblendet. - Die Klartextwerte liefert jetzt
GET /api/docker/containers/{id}/secrets, dasdocker:writeerfordert. Das Bearbeitungsformular lädt sie für Administratoren automatisch, und Felder, die noch mit dem Platzhalter abgeschickt werden, behalten ihren ursprünglichen Wert. - Ein Containername oder ID-Präfix in einer Anfrage wird zuerst zur vollständigen ID aufgelöst, sodass sich der Schutz des Containers, in dem Gately selbst läuft, nicht mehr über den Containernamen umgehen lässt. Bearbeiten und Neuerstellen beim Upgrade behandeln den alten Container immer über die vollständige ID. Damit ist behoben, dass bei einem Aufruf per Name der Aufräumschritt den neuen Container löschte und nach einem Fehler kein Rollback möglich war. Starten, Stoppen oder Löschen des Containers während der Neuerstellung liefert 409.
Prüfen Sie nach dem Upgrade, ob API-Tokens mit Nur-Lese-Rechten je an nicht vertrauenswürdige Dritte weitergegeben wurden, und tauschen Sie bei Bedarf die Geheimnisse in Ihren Containern aus. Wie Sie Schwachstellen melden, steht in SECURITY.md: über die private Schwachstellenmeldung von GitHub oder per E-Mail.
Netzwerk für die Zertifikatsausstellung
Zertifikate haben eine neue Option „Netzwerk“ (#35): Mit „Nur IPv4“ oder „Nur IPv6“ nutzen der Zugriff auf die CA, die Aufrufe der DNS-Anbieter-API und die Prüfung, ob TXT-Einträge wirksam sind, nur diese Adressfamilie. Hat der Host eine IPv6-Adresse, IPv6 funktioniert aber tatsächlich nicht, lief die Propagationsprüfung bisher bei der Abfrage der autoritativen DNS-Server in eine Zeitüberschreitung und die Ausstellung schlug fehl; „Nur IPv4“ löst das. Beim Zugriff über einen Proxy wie HTTPS_PROXY ist die Verbindung zum Proxy selbst von dieser Option nicht eingeschränkt. Siehe SSL-Zertifikate · Ausstellungsnetzwerk.
Schutz des eigenen Containers
Upgrade, Sammel-Upgrade und Bearbeiten mit Neuerstellung auf der Docker-Seite sowie up oder das Löschen des Compose-Projekts, zu dem Gately gehört, stoppen alle zuerst den alten Container. Der Gately-Prozess beendete sich mit ihm, die Neuerstellung wurde nie abgeschlossen und der Container blieb gestoppt (#38). Diese Vorgänge werden für den eigenen Container jetzt abgelehnt: Die Schaltflächen sind ausgegraut und weisen darauf hin, auf dem Host zu aktualisieren, und das Sammel-Upgrade überspringt ihn. Beim Neustart des Compose-Projekts, zu dem Gately gehört, wird der eigene Container zuletzt neu gestartet.
Benachrichtigungen und Protokolle folgen der Oberflächensprache
Ist die Serversprache „Systemeinstellung folgen“, verwendet Gately nacheinander die in GATELY_LANG und LANG angegebene Sprache. Unter Docker, fnOS und OpenWrt ist meist keine der beiden Variablen gesetzt, daher fielen Benachrichtigungen auf Englisch zurück (#40). Jetzt folgen sie der Oberflächensprache der letzten Administratoranmeldung oder des letzten Wechsels in der oberen Leiste; Anmeldungen von Nur-Lese-Konten ändern sie nicht. Die „Quelle“ einer Benachrichtigung wird übersetzt, wenn es sich um einen vom Programm erzeugten Namen handelt, während von Benutzern eingegebene Aufgabennamen unverändert bleiben. Englische Protokolle mit Präfixen wie [warn] [auth] mischen nicht mehr Chinesisch und Englisch.
Standard-Website festlegen
Hat ein Listener der Web-Dienste noch keine Standard-Website, zeigt seine Karte eine neue Schaltfläche „Standard-Website festlegen“ (#37), mit der sich direkt festlegen lässt, wie Anfragen behandelt werden, die zu keiner Domain passen.
Hinweise zum Upgrade
- Docker: neues Image ziehen und den Container neu erstellen. OpenWrt: das neue
.apk/.ipküber das alte installieren und bei Bedarf der LuCI-Seite auchluci-app-gatelyin derselben Version installieren. fnOS: das neue.fpkmanuell im App Center installieren. Andere Installationen lassen sich unter „Systemeinstellungen“ online aktualisieren.