觀點 · 資訊分享

Tailscale 一次公告 4 個漏洞:Tailscale SSH 與 Serve 能摸到 root 專用 socket,升級 1.104.4

Tailscale 在 10 月 26 日一次公告 4 個安全漏洞,集中在 Tailscale SSH 與 Serve。最嚴重的可以讓已授權的對等裝置碰到 Docker socket 等 root 專用 socket,甚至接管整個節點。全部在 1.104.4 修正,家裡 NAS 有跑 Tailscale 的人該檢查版本了。

發布
2026-10-26
篇幅
約 5 分鐘 · 2,326 字
結構
7 節 + 4 題常見問題
標籤
#Tailscale#資安漏洞#NAS#Zero Trust#SSH
Tailscale 一次公告 4 個漏洞:Tailscale SSH 與 Serve 能摸到 root 專用 socket,升級 1.104.4

一句話看懂:Tailscale 10 月 26 日一次公告 4 個安全漏洞(TS-2026-014 到 017),集中在 Tailscale SSH 與 Tailscale Serve:最嚴重的可以讓已授權的對等裝置摸到 root 專用的 socket,甚至完全接管節點;修正版本是 1.104.4。

Tailscale 一次修 4 個 SSH 與 Serve 漏洞資訊圖卡:已授權的裝置能透過 Tailscale SSH / Serve 摸到 root 專用的 socket,升級 1.104.4

先用白話講:Tailscale SSH 與 Serve 是什麼?

Tailscale 是很多人拿來把家裡 NAS、工作電腦、雲端主機串成一個私人網路的工具。它附帶兩個方便的功能:

  • Tailscale SSH:不用自己管 SSH 金鑰,直接用 Tailscale 的身分登入另一台機器
  • Tailscale Serve:把機器上的某個服務(網頁、Unix socket)分享給私人網路裡的其他裝置

問題在於,負責這些事的 tailscaled 程式是以 root(最高權限) 跑的。你可以想像成一位拿著萬能鑰匙的管家幫你轉交東西:管家本來只該幫你拿你有權拿的東西,但這次的漏洞讓「有權請管家辦事的人」可以騙管家去開那些只有屋主能開的門。

發生什麼事

Tailscale 安全公告頁在 10 月 26 日列出 4 則:

編號 影響功能 問題 後果
TS-2026-014 Tailscale SSH 的 socket 轉發 檢查路徑只看字面,實際操作卻用 root 身分;配合 ssh -L、ssh -R 與路徑競爭條件,等於把路徑白名單整個繞過 已授權的對等裝置可以碰到 Docker socket、tailscaled 本機 API 等 root 專用 socket
TS-2026-015 Tailscale SSH 連線處理 不斷送視窗大小變更訊息或追加環境變數,會讓記憶體無限成長,斷線後也不釋放 把 tailscaled 撐到被系統 OOM 砍掉,整台機器的 Tailscale 連線全斷
TS-2026-016 Tailscale Serve 的 Unix socket 後端 TCP 轉發到 Unix socket 沒有防護、以 root 撥接;symlink 檢查只在載入設定時做一次 可直接打到 tailscaled 本機 API,官方寫明可導致整個節點被接管
TS-2026-017 Tailscale Serve 開 TLS 時的 HTTP/2 同一條連線上的多個串流共用一份狀態,Tailscale-App-Capabilities 標頭會在不同掛載點之間串線 靠這個標頭做授權的應用,可能把另一個掛載點的權限回應給錯的人

四則全部標示「已在 Tailscale 1.104.4 或更新版本修正」。官方 changelog 的 1.104.4 條目日期則是 10 月 28 日(後續),並說明 1.104.3 是內部版本,實際對外的修正版就是 1.104.4。

誰該注意

  • 前三則都需要已經通過政策授權的對等裝置或本機使用者才能觸發,不是從網際網路直接打進來;但「私人網路裡的某台裝置被攻陷」正是零信任網路最該防的情境
  • TS-2026-014:有開 Tailscale SSH 而且 存取政策允許本機或遠端轉發的節點
  • TS-2026-015:所有跑 Tailscale SSH 伺服器的節點
  • TS-2026-016:本機有人能改 Serve 設定、或能寫入後端路徑的節點
  • TS-2026-017:Serve 開 TLS、且同一節點上有兩個以上權限需求不同的掛載點

給開發者的技術細節

  • 直接升級:所有平台升到 1.104.4 以上
  • 一時不能升級的 TS-2026-014 緩解:在 tailscaled 服務環境加上 TS_SSH_DISABLE_FORWARDING=1 後重啟,只關掉轉發、不用整個關 Tailscale SSH
  • 修正方式(來自 changelog):SSH 的 socket 轉發改用登入者本人的身分執行,不再用 root;Serve 限制 TCP 轉發到 tailscaled socket,並且每次連線都重新驗證後端路徑;HTTP/2 改成每個請求自己帶能力資訊,不再跨串流共用
  • 如果你的應用用 Tailscale-App-Capabilities 標頭做授權判斷,升級後建議重新測一次多掛載點的情境

我的看法

我自己在家用 NAS 自架服務,Tailscale 幾乎是標配,而 Docker socket 正好是這類機器上最敏感的東西之一:拿到 Docker socket 基本上就等於拿到 root。這次 TS-2026-014 和 016 講的就是這條路,而且觸發條件只需要「網路裡某台已授權的裝置」,一台中毒的筆電就夠了。

Tailscale 這種工具的方便之處是「裝完就忘」,風險也是同一件事:很少人會定期去看 NAS 上的版本。建議至少把自動更新打開,或者把它加進每月巡檢清單;真的要開 Tailscale SSH 轉發的人,順手檢查一下存取政策是不是給得太寬。

名詞小辭典

  • Unix socket:同一台機器上程式之間溝通用的「檔案型通道」,Docker 與 tailscaled 的控制介面都是這種。
  • root:Linux 系統的最高權限帳號,拿到它就能做任何事。
  • OOM(Out of Memory):記憶體用光時,系統會強制砍掉吃最多記憶體的程式。
  • ACL(存取控制清單):Tailscale 裡定義「誰可以連到誰、用什麼方式」的政策檔。

資料來源

常見問題

我只是用 Tailscale 連回家裡 NAS,沒開 Tailscale SSH 和 Serve,要緊嗎?
這 4 則公告的觸發條件都需要 Tailscale SSH 或 Tailscale Serve 功能,沒開的節點不在影響範圍內。不過升級到 1.104.4 沒有壞處,順手升了最省心。
攻擊者要從網際網路打進來嗎?
不是。前三則都需要「已經通過 Tailscale 政策授權」的對等裝置或本機使用者才能觸發,第四則需要同一節點上有多個權限不同的 Serve 掛載點。風險情境是私人網路裡某台裝置(例如中毒的筆電)被當跳板,去拿另一台機器的 root 權限。
怎麼確認我的 Tailscale 版本?
在該機器執行 tailscale version,看到 1.104.4 或更新即可。NAS 套件版本的 Tailscale 更新節奏可能比官方慢,若套件中心還沒推新版,可先用公告裡的緩解方式,或暫時關掉 Tailscale SSH 轉發與 Serve。
TS_SSH_DISABLE_FORWARDING=1 會影響什麼?
只會關掉 Tailscale SSH 的本機與遠端轉發(ssh -L、ssh -R 那類功能),一般的 SSH 登入照常可用。它是 TS-2026-014 的暫時緩解,對 015、016、017 沒有幫助,最終還是要升級。
作者

韓滷 · 全端系統工程師

接案做系統開發、網站與主機託管。觀點裡的文章都是我自己寫的,寫的是做專案時第一手遇到的事。

LINE