On October 24, 2026, researcher Erica Windisch (Cyberdione Labs) published “Tailworm”, a security assessment of Tailscale and headscale listing eleven findings. Its core concerns Tailscale SSH: any user allowed to log in, even with an ordinary account, could gain root on the target server by abusing Unix socket forwarding. Chained together, the bugs enabled automated machine-to-machine spread in a lab, at under a second per hop. Because the report went public about two hours after it reached the vendor, Tailscale had to ship fixes under pressure; they are available from version 1.104.4.
- Eleven findings, several rated high by the researcher, were identified in Tailscale 1.104.2 and headscale 0.29.5; three of them allow escalation to root through Tailscale SSH.
- Unix socket forwarding (
ssh -L/ssh -R) ran with the root privileges of thetailscaleddaemon instead of those of the authenticated user. - Prerequisites: the attacker must already control an authorized tailnet device and benefit from an SSH rule that permits forwarding. Unauthenticated attackers cannot exploit these flaws.
- Fix: Tailscale v1.104.4, with four bulletins (TS-2026-014 to TS-2026-017). Some findings (headscale, conn25, Funnel) were still open per the report as of October 28.
What happened
Tailscale is a WireGuard-based mesh VPN widely used for remote access to servers and administration environments. Its Tailscale SSH feature replaces classic SSH authentication with device identity and the access rules defined in the tailnet policy file. headscale is an open-source, self-hostable implementation of the control server.
According to Tailscale’s timeline, concerns about Tailscale SSH circulated on social media on Friday, October 23, and the company started investigating. It received the report on the morning of Saturday, October 24; the researcher published it roughly two hours later, before any fix existed. The uncoordinated disclosure drew criticism, while the researcher argued that rapid awareness would speed up remediation.
Tailscale engineers worked on fixes over the weekend. On October 26, the company published an investigation update and its security bulletins. Version 1.104.4 was tagged on October 27, and a full write-up followed on October 28. The researcher, for her part, credits Tailscale with a “rapid and substantive response.”
Technical analysis
Root escalation through socket forwarding
Findings 1 to 3 make up the most serious scenario. Unix socket forwarding requested by an SSH client was performed by the tailscaled process, which runs as root. The path allowlist (home directory, /tmp, /run/user) was checked purely lexically, so a rename-based TOCTOU race could defeat it.
According to the report, an ordinary SSH user could therefore:
- execute code as root by reaching the root-owned Docker socket;
- replace Tailscale’s control socket and capture an enrollment authkey;
- delete or chmod arbitrary root-owned files;
- dial systemd’s private bus as root and turn that into a root shell.
The researcher points out that OpenSSH drops privileges before handling forwarding, and that Dropbear fixed the same bug class (CVE-2025-14282) in version 2025.89. Tailscale summarizes the issue as an authenticated session being able to perform operations beyond the privileges of its configured local user, including through SSH forwarding.
The “worm”: spread bounded by access policy
The report describes a full chain: hold the socket bind, intercept local API traffic, capture an authkey, then enroll a rogue node under the victim’s identity. It was demonstrated end to end on a tailnet with Tailnet Lock disabled. In the lab, automated spread to every server reachable under the policy took less than a second per hop, with no user credentials and no interaction.
Tailscale disputes the “self-replicating worm” label, describing it as lateral movement limited to connections the policy allows. Both readings agree on the key point: the blast radius depends directly on how broad your SSH rules are. The researcher notes that per-pair grants stopped the spread, and that hardware-bound device credentials (TPM, Secure Enclave) prevented identity theft.
The other findings
| Bulletin / finding | Component | Description | Status |
|---|---|---|---|
| TS-2026-014 (findings 1–3) | Tailscale SSH | Unix socket forwarding ran as root, granting access to root-only sockets | Fixed in 1.104.4 |
| TS-2026-015 (finding 5) | Tailscale SSH / gliderssh | Memory exhaustion of tailscaled by an authenticated session (denial of service) | Fixed in 1.104.4 |
| TS-2026-016 (findings 7–8) | Serve | Unix backends could reach privileged sockets, including the tailscaled local API | Fixed in 1.104.4 |
| TS-2026-017 (finding 11) | Serve (HTTP/2) | Race letting capabilities from one mount apply to another | Fixed in 1.104.4 |
| Finding 4 | conn25 (app connectors) | Arbitrary egress destinations, including cloud metadata and Kubernetes services | Unreleased feature; partial fix per the report |
| Finding 6 | headscale, DERP client | Unbounded memory consumption | Client fixed; headscale pending per the report |
| Findings 9–10 | Funnel, Serve | Funnel entitlement check; TS_SERVE_ALLOW_ALL_INTERFACES setting | Considered working as designed by Tailscale |
Who is affected?
The organizations most exposed are those using Tailscale SSH with rules that allow local or remote forwarding, especially when those rules are broad (access granted to an entire identity or tag, privileged target accounts). Deployments running regular OpenSSH over Tailscale are not affected by the SSH chain. Self-hosted environments on headscale 0.29.5 deserve special attention: according to the report, forwarding cannot be disabled through policy there.
Why it matters
Zero-trust access tools concentrate authorization on device identity. That is a strength, but also a single point of failure: a laptop compromised through phishing, a vulnerable web application or a malicious software package is enough to inherit every permission that device holds. If those permissions include SSH access to many servers, a local privilege escalation becomes a fleet-wide compromise.
The episode is also a reminder that a network access tool is a critical part of the administration chain. It must be inventoried, patched and monitored just like a VPN or a bastion host.
MITRE ATT&CK mapping
Neither the vendor nor the researcher provides an ATT&CK mapping. The table below is an indicative Defensy reading based on the lab scenario described.
| Technique | Described behavior |
|---|---|
| T1021.004 — Remote Services: SSH | Connection over Tailscale SSH from a compromised authorized device |
| T1068 — Exploitation for Privilege Escalation | Socket forwarding executed as root, then a root shell via Docker or systemd |
| T1210 — Exploitation of Remote Services | Automated spread to servers permitted by the policy |
| T1499 — Endpoint Denial of Service | Memory exhaustion of tailscaled and headscale |
Recommendations
- ImmediateUpgrade to Tailscale 1.104.4 or later
Start with servers exposing Tailscale SSH, then cover every node. Check the version actually deployed on each device, including containers and pinned images.
- ImmediateDisable SSH forwarding where it is not needed
In the policy file, turn off local and remote forwarding for rules that do not require it. On nodes not yet upgraded, bulletin TS-2026-014 advises setting
TS_SSH_DISABLE_FORWARDING=1in thetailscaledservice environment and restarting the service. - ImmediateTreat every SSH grant as root on headscale
On headscale 0.29.5, sharply restrict SSH rules, or temporarily fall back to regular OpenSSH over the tunnel until a fix is available.
- Short termTighten your SSH access policy
Replace identity-wide or tag-wide rules with per-pair source/destination grants, avoid privileged target accounts and consider check mode for sensitive systems, keeping in mind that it only gates session establishment, not forwarding.
- Short termHarden node identity
Enable Tailnet Lock, node key expiry on servers and, where possible, hardware-bound state. Rotate any authkeys reachable from potentially exposed hosts.
- Medium termMonitor from outside the host
Forward control-plane logs (node enrollment, policy changes) and server telemetry (socket creation,
docker.sockaccess, unexpected shells) to your SIEM. If a host is compromised, delete the device at the control plane: reimaging does not revoke copied keys.
This case highlights an often underestimated reality: your remote access tool is part of your attack surface. Overly broad rules turn a local compromise into fleet-wide lateral movement within seconds.
Our Audit & Offensive Security team reviews your access policies and simulates these lateral movement scenarios. Our SOC, Detection & Response service watches for privilege escalation signals and suspicious device enrollments.
- Tailscale SSH: Findings and FixesTailscale — Mike Shaver — October 28, 2026
- Security Bulletins (TS-2026-014 to TS-2026-017)Tailscale — October 26, 2026
- Tailworm — Security assessment of Tailscale v1.104.2 and headscale v0.29.5Cyberdione Labs — Erica Windisch — updated October 27, 2026
- Tailscale Rushes Patches After Uncoordinated Disclosure of Tailworm FlawsSecurityWeek — Eduard Kovacs — October 27, 2026
- MITRE ATT&CK® — Enterprise MatrixMITRE Corporation
