Wink Pings

Tailscale SSH 被曝 11 个漏洞:一台失守,root 传到下一台

研究员在 Tailscale SSH 里发现 11 个问题,核心是转发功能以 root 权限运行。实验室里,一个普通会话通过 Docker socket 读到了 /etc/shadow,每跳传播不到一秒。官方回应:不建议所有人禁用,但配置该查还得查。

2026 年 10 月 25 日,安全研究员 Erica Windisch 在 Cyberdione Labs 发布了一份叫 Tailworm 的报告:Tailscale SSH 存在 11 个问题,分 5 组,测试版本是 Tailscale 1.104.2 和 headscale 0.29.5。没有 CVE,没有补丁。

Tailscale SSH 漏洞报道截图

先补个背景。Tailscale 是一个基于 WireGuard 的私有网络工具,把不同机器连成一个虚拟局域网,叫 tailnet。Tailscale SSH 是它自带的功能,打开之后,tailnet 里的设备可以按 ACL 策略互相 SSH 登录,不用自己管密钥和密码。方便,也是很多人用它的原因。

问题出在实现上。Tailscale SSH 的服务器跑在 tailscaled 这个后台进程里,而 tailscaled 以 root 权限运行。当 SSH 会话做端口转发(ssh -L 或 ssh -R)时,涉及 Unix socket 的路径检查和文件操作,全部以 root 身份执行。

报告里的实验室演示结果:一个普通的、已授权的 SSH 会话,通过转发连到 Docker socket,读到了主机上的 /etc/shadow。另一条链里,攻击者捕获了设备注册密钥,把一个自己的节点加进了 tailnet,看起来就像一个正常的、带标签的服务器。每跳传播用时不到一秒。

要泼一盆冷水:这个攻击需要第一个落脚点。攻击者得先攻陷 tailnet 里的一台设备,比如通过一个漏洞 Web 应用、一个恶意依赖包,或者偷到的凭证。Tailscale 本身没造这个洞,它的问题是把这个洞变成了整个网络的入口。

Tailscale 工程 VP Mike Shaver 在 Reddit 上回应了。他说团队已经在独立调查,也请了外部安全专家,确认了一些问题正在修。他的判断是:目前不建议所有人禁用 Tailscale SSH。大部分问题发生在“已经授权连接之后”,涉及 Unix 权限和 SSH 转发怎么处理,某些情况下一个会话能做到超过它本该能做的事。

他给了几条建议:审查 SSH 访问策略,只给需要的人和设备;审查转发权限,不需要就关掉;开 check mode 加一道认证;开自动更新蹲补丁。

研究员这边认为报告是“报告了但没协调”。Hacker News 上有人吐槽报告难读。两边还在互相看。

社区的反应比较分裂。有人觉得不用慌,需要先有设备被攻陷,严重但不用半夜爬起来;有人直接说,把 VPN 访问当成全盘信任才是根本问题。也有人翻出了旧账。

今年 Tailscale 已经发过两份安全公告,TS-2026-006 和 TS-2026-009,都涉及 SSH 到 root 的路径,其中一个是通过用户名“-i”触发的,都在 1.98.9 修了。今年 7 月,一个 AI agent 用一个被盗的可复用 Tailscale key,把 181 个节点注册进了 Hugging Face 的网络,没利用任何漏洞。

核心问题可能不是某一个具体的 bug,而是一种默认假设:tailnet 里的设备是可信的,连上了就可以互相访问。这个假设在设备少、都是自己的机器时成立。一旦 tailnet 里混进了别人的设备,或者自己的某台机器被攻陷,整个网格就变成了攻击者的平坦网络。

报告里有一句话说得挺准:zero trust 是一个策略文件,不是软件的一个属性。

具体该做什么:

  • 不用 Tailscale SSH 的节点,执行 tailscale set --ssh=false。
  • 用普通 OpenSSH over tailnet,它在会话开始前就会降到用户权限,避开了最严重的那类问题。
  • SSH 规则按对写,一个源对一个目标,别用 tag 级别的全放行。报告说,按对授权是实验室里唯一阻止传播的控制。
  • 不需要转发就拒绝转发。headscale 0.29.5 目前没法单独关转发,所有 SSH 授权都得当 root 权限对待。
  • 删掉指向 Unix socket 的 serve 转发。
  • 开 node-key 过期和 Tailnet Lock,把可复用的 auth key 换成一次性的。
  • 设备被攻陷,去控制台删掉它。重装系统不会撤销已经被复制走的密钥。

一位网友的评论值得记下来:这需要先有一台设备被攻陷,严重,但不用火烧眉毛。另一位说得更直接:不是 Tailscale 的问题,是把 VPN 访问当成全盘信任的问题。

发布时间: 2026-10-26 05:39