Tailscale SSH 1.104.4 behebt root-level Forwarding-Schwachstellen
Tailscale SSH, ein Secure Shell-Dienst für den Fernzugriff auf Systeme, hat Sicherheitskorrekturen für Schwachstellen erhalten, durch die ein kompromittiertes, aber vertrauenswürdiges Gerät auf Dateien und Dienste zugreifen könnte, die dem Administrator root vorbehalten sind. Version 1.104.4 behebt die Probleme, indem sie ändert, wie weitergeleitete Verbindungen innerhalb des integrierten SSH-Servers verarbeitet werden.
Für eine Ausnutzung muss ein Angreifer ein Gerät kontrollieren, dem die Netzwerkrichtlinie bereits erlaubt, eine SSH-Sitzung mit dem Zielsystem zu starten. Die geltende Zugriffsregel muss außerdem Forwarding zulassen, wodurch eine Sitzung eine Verbindung zu einem anderen lokalen Dienst übertragen kann. Laut Tailscale verschaffen die Schwachstellen einem nicht authentifizierten Angreifer keinen Zugriff auf beliebige Server, und der Angreifer bleibt auf die von der Richtliniendatei zugelassenen Rechner beschränkt. Tailscale SSH verwendet jedoch die Identität des Geräts und die Netzwerkrichtlinie anstelle eines SSH-Passworts oder -Schlüssels, sodass nach der Kompromittierung eines vertrauenswürdigen Geräts keine zusätzlichen Zugangsdaten erforderlich sind.
Die Erkenntnisse stammen aus Tailworm, einem Bericht von Cyberdione Labs, der auf Labortests veröffentlichter Versionen des Tailscale-Clients und von headscale, dem selbst gehosteten control server, basiert. Der Tailscale SSH-Server läuft unter Linux und im Open-Source-Build für macOS, wobei das Gerät, das die schädliche Sitzung initiiert, eine beliebige Plattform verwenden kann.
Das Hauptproblem betraf das Forwarding von Verbindungen zu einem Unix socket, einem lokalen Verbindungspunkt, über den Programme auf demselben Rechner miteinander kommunizieren. Der Tailscale-Hintergrundprozess prüfte zunächst den angeforderten socket path und führte den Vorgang anschließend mit root-Rechten aus. Indem ein Angreifer den path im richtigen Moment nach der Prüfung änderte, konnte er die Verbindung zu einem anderen Unix socket umleiten und die vorgesehene Beschränkung umgehen.
Cyberdione Labs berichtete, dass bei den Tests ohne Administratorrechte der Docker control socket erreicht, eine root shell erlangt und /etc/shadow gelesen wurde, die Systemdatei mit geschützten Passwortinformationen. Das Bulletin von Tailscale beschreibt den Zugriff auf nur für root zugängliche Unix socket-Endpunkte, darunter den Docker socket und die lokale API von tailscaled, über die Software den Dienst steuert. In Version 1.104.4 wird das Forwarding als angemeldeter Benutzer statt als root ausgeführt, während die Dateiberechtigungen des Betriebssystems festlegen, auf welche Unix socket-Endpunkte dieser Benutzer zugreifen darf.
Das Release behandelt vier Sicherheitsbulletins. TS-2026-014 betrifft Schwachstellen beim SSH socket forwarding, durch die privilegierte Unix socket-Endpunkte offengelegt wurden. TS-2026-015 betrifft eine zugelassene SSH-Sitzung, die so viel Arbeitsspeicher verbrauchen kann, dass der Tailscale-Prozess abstürzt, wodurch das gesamte Tailscale-Netzwerk auf diesem node ausfällt. TS-2026-016 betrifft tailscale serve: Hier konnte Forwarding zu einem Unix socket die lokale API von tailscaled erreichen und die Fernsteuerung des node ermöglichen; außerdem ist ein damit zusammenhängendes path-swapping-Problem enthalten. TS-2026-017 betrifft serve-Konfigurationen mit Transport Layer Security (TLS) und zwei oder mehr mounts, bei denen eine Anfrage Berechtigungs-Header erhalten konnte, die zu einem anderen mount gehörten.
Administratoren, die Tailscale SSH verwenden, sollten Version 1.104.4 oder neuer installieren. Wenn eine sofortige Aktualisierung nicht möglich ist, empfiehlt Tailscale, TS_SSH_DISABLE_FORWARDING=1 in der Umgebung des tailscaled-Dienstes zu setzen und den Dienst neu zu starten. Dadurch wird Forwarding deaktiviert, ohne Tailscale SSH abzuschalten, und mehrere der schwerwiegenderen Probleme werden blockiert. Administratoren sollten außerdem die SSH-Zugriffsregeln auf die Benutzer und Geräte beschränken, die den Zugriff tatsächlich benötigen.
Tailscale empfiehlt für sensible Systeme zusätzlich den SSH check mode. Dabei muss sich der Benutzer erneut anmelden, bevor die Sitzung beginnt. Dies verhindert die Forwarding-Schwachstellen jedoch nicht, da Forwarding erst erfolgt, nachdem eine genehmigte Sitzung gestartet wurde. Falls möglicherweise bereits eine Kompromittierung stattgefunden hat, warnt der Tailworm-Bericht, dass eine Aktualisierung oder ein erneutes Aufsetzen des Rechners allein nicht ausreicht. Ein gestohlener device key bleibt verwendbar, bis das Gerät über die control plane gelöscht wird, also das System, mit dem die teilnehmenden Geräte verwaltet werden. Die Hinweise von Tailscale gehen auf dieses Szenario nicht ein.
Die Situation bei headscale ist in den getesteten Versionen weiterhin ungelöst. Laut Cyberdione Labs erhält jede akzeptierte headscale-SSH-Sitzung Forwarding-Rechte, die nicht durch Richtlinien deaktiviert werden können. Dem Bericht zufolge sollte daher jede headscale-SSH-Berechtigung so behandelt werden, als würde sie faktisch root access gewähren. Headscale 0.29.5, veröffentlicht am 13. Oktober, behebt die gemeldeten Probleme nicht.
Cyberdione Labs beschrieb die Angriffskette nach Tests als für eine wurmartige Ausbreitung geeignet: Ein kompromittiertes Gerät erreichte dabei jedes von der Richtlinie zugelassene Gerät, ohne Passwörter, gestohlene SSH-Schlüssel oder Benutzerinteraktion; jeder Schritt dauerte weniger als eine Sekunde. In den Tests wurde diese Bewegung gestoppt, indem Zugriffsregeln jeweils einzelnen Verbindungen zwischen zwei Geräten zugeordnet wurden. Auch die Bindung von Geräteidentitäten an Hardware wie ein Trusted Platform Module (TPM), eine Sicherheitskomponente innerhalb eines Geräts, verhinderte, dass eine gestohlene Identität an anderer Stelle wiederverwendet wurde.
Tailscale widerspricht der Beschreibung als Wurm, da die Erkenntnisse keine selbstreplizierende Malware betreffen, die sich eigenständig verbreitet. Das Unternehmen bezeichnet das Verhalten als durch die bestehende Netzwerkrichtlinie eingeschränkte lateral movement, räumt jedoch schwerwiegende Probleme bei der privilege escalation ein und erklärt, die wichtigsten Erkenntnisse reproduziert zu haben. Das Unternehmen untersuchte weiterhin, welche Konfigurationen genau betroffen waren.
Zum Zeitpunkt der Veröffentlichung hatten die vier Bulletins keine CVE-Identifikatoren, Schweregradbewertungen oder Angaben zu den frühesten betroffenen Versionen. Der umfassendere Tailworm-Bericht untersuchte außerdem app connectors sowie die Funktionen serve und funnel. Laut Tailscale betrifft das Problem mit dem app connector conn25, eine experimentelle Funktion, die noch nicht veröffentlicht wurde, und nicht die derzeit von Kunden verwendeten connectors. Von fünf Erkenntnissen zu serve und funnel behob das Unternehmen drei und erklärte, die beiden übrigen verhielten sich wie vorgesehen.
Die Offenlegung wurde nicht im Voraus koordiniert. Laut Tailscale ging der Bericht am Samstag, dem 24. Oktober, etwa zwei Stunden vor der Veröffentlichung ein, obwohl die Ingenieure des Unternehmens dieselben Codebereiche bereits untersuchten. Weder Tailscale noch Cyberdione Labs haben von einer Ausnutzung bei realen Angriffen berichtet. Proof-of-concept-Code ist nicht öffentlich und wurde dem Bericht zufolge ausschließlich dem Sicherheitsteam von Tailscale zur Verfügung gestellt. Eine separate Schwachstelle beim Unix socket forwarding, durch die ein Benutzer ohne besondere Berechtigungen einen privilegierten Unix socket erreichen konnte, wurde im Juni mit Version 1.98.9 behoben.
Für Organisationen, die den Serverzugriff und ihre Infrastruktur überprüfen, bietet AEU-I sicherheitsorientierte IT-, Infrastruktur- und Beratungsleistungen an. Die unmittelbaren Prioritäten bleiben die Installation von Version 1.104.4 oder neuer, die Einschränkung vertrauenswürdiger Gerätebeziehungen und das Entfernen jeder potenziell gestohlenen Geräteidentität aus der control plane.