世界を動かす技術を、日本語で。

TS-2026-009: Tailscale SSHにおける不適切な引数処理がルートアクセスを許可する

2026年7月15日原文(tailscale.com)

概要

  • Tailscale 1.98.9以前に複数の重大な脆弱性が発見
  • サービス停止や権限昇格、認可バイパスなど多岐にわたる影響
  • 影響範囲はTailscale Serve、Funnel、SSH、Services、Web UIなど
  • すべての脆弱性は1.98.9(または1.98.0/1.94.0)で修正済み
  • 影響を受けるユーザーは早急なアップデートが推奨

Tailscale Serve/Funnel: 不正なHTTPリクエストによるCPUコアの過負荷

  • Serve および Funnel が不正なHTTPリクエストで CPUコアを無限に占有 する脆弱性
  • リクエストパスの解決ロジックが非絶対パスで無限ループに陥る仕様
  • サーバー側でリクエストタイムアウト未設定のため DoS(サービス拒否)攻撃が可能
  • 1リクエストごとに1コアを100%消費、プロセス生存中継続
  • バージョン1.98.9 で修正済み、非絶対パスは即座に拒否
  • 影響範囲:Serveはtailnet内のピア、Funnelはインターネット全体から攻撃可能
  • 対策: 1.98.9以降へアップデート必須

Tailscale SSH: コマンドライン引数処理の不備によるroot権限取得

  • SSHログイン時のユーザー名先頭「-」 を許容していた仕様
  • Linuxではgetentコマンドの引数として解釈され、 -i などでrootセッションを取得可能
  • ACL(アクセス制御リスト)を無効化しroot取得のリスク
  • 1.98.9 で先頭ダッシュのユーザー名は拒否するよう修正
  • 影響範囲:Linux上でautogroup:nonroot制限を利用するTailscale SSHユーザー
  • 対策: 1.98.9以降へアップデート必須

Tailscale Services: ループバックバインドリスナーへの不適切なアクセス制御

  • サービスIPで 未広告ポート へのトラフィックが ローカルループバックプロセス に転送されるバグ
  • 結果として リモートからローカル限定サービスへアクセス可能
  • 1.98.9 で該当パケットはTCP RSTで拒否するよう修正
  • 影響範囲:ループバック専用アクセス制限に依存するTailscale Services利用者
  • 対策: 1.98.9以降へアップデート必須

Tailscale SSH: UID指定によるrootユーザー制限バイパス

  • SSH接続時に ユーザー名またはUID で指定可能だった仕様
  • root制限はユーザー名のみを対象としており、 0@host でrootアクセス可能
  • 1.98.9 でUIDや数字のみのユーザー名を禁止
  • 影響範囲:autogroup:nonroot制限に依存するTailscale SSHユーザー
  • 対策: 1.98.9以降へアップデート必須

Tailscale Serve: 非rootオペレーターによる特権Unixソケットプロキシ

  • Serve設定で Unixドメインソケット をプロキシターゲットとして指定可能
  • 本来root限定のはずが、非rootオペレーターでも設定可能なバグ
  • tailscaledプロセスがrootで実行されている場合、 非rootユーザーが特権ソケットへアクセス可能
  • 1.98.9 でUnixソケットのプロキシ指定もroot限定に修正
  • 影響範囲:非rootローカルユーザーをオペレーターに設定しているLinux/Unixホスト
  • 対策: 1.98.9以降へアップデート必須

Tailscale SSH: Unixソケット転送時のシンボリックリンク許可ミス

  • SSHのUnixソケット転送で シンボリックリンク のパス解決を適切に確認せず
  • ユーザー所有のパスで特権ソケットへのシンボリックリンクを作成しアクセス可能
  • 1.98.9 でリンクの実体も許可リストに含まれるか検証し、不正な転送を拒否
  • 影響範囲:Unixソケットのファイルシステム権限に頼るTailscale SSH利用者
  • 対策: 1.98.9以降へアップデート必須

OAuthアクセストークンの監査ログ記録

  • Tailscaleサーバーが OAuthクライアントアクセストークン を監査ログに 平文で記録
  • ログ閲覧権限を持つ管理者が アクセストークンを取得・API操作可能
  • 対象期間: 2026年3月1日~5月29日 にOAuthクライアントを利用した全tailnet
  • 現在は トークン部分はマスキング、有効期限1時間のため過去分も既に失効
  • 対策: 追加対応不要

TailscaleクライアントWeb UI: ACL権限バイパス

  • クライアントのWeb UIで /api/routesエンドポイント が不正リクエストで exit nodeやサブネットルートの無効化 可能
  • 本来はexitNodesやsubnets権限が必要だが、空リクエストでリセット可能なバグ
  • 1.98.0 で修正済み
  • 影響範囲:1.56.0~1.98.0のWeb UIを明示的に有効化したLinux/macOS/Windowsノード
  • 対策: 1.98.0以降へアップデート必須

tssentineld: 権限昇格を伴う任意コマンド実行

  • macOSの AlwaysOn.Enabled MDMポリシー で導入されるtssentineldが root権限で起動
  • ユーザー名のテンプレート展開処理が不適切で、 コマンドインジェクション のリスク
  • 1.94.0 で修正済み
  • 影響範囲:tssentineldを利用するmacOS環境
  • 対策: 1.94.0以降へアップデート必須

全体的な推奨対応

  • Tailscale Serve/Funnel/SSH/Services/Web UI/tssentineld利用者は 該当バージョン以降へのアップデートが必須
  • セキュリティリスク回避と安定運用のため、 定期的なバージョン確認と適用 が重要
  • 脆弱性の詳細や個別の影響範囲は 公式リリースノートやアドバイザリ を参照

Hackerたちの意見

これはすごく古くて尊敬すべきバグのクラスだね。AIX 3まで遡ることができる。昔ながらの作り方で今も作ってるのを見ると嬉しいよ。(もしTailscaleのACLにホストへのSSHアクセスがあれば、-iでログインしてルートログインできるよ。)

人気のあるクラウドプロバイダーでは、同じ効果を得るために環境変数にパラメータを追加することもできるよ。

このバグが動いていた環境がルートログインできる状態だったのはちょっと驚きだね。SSHログインプロセスがデフォルトで直接ルートログインを可能にするほどの権限を持つ理由ってあるのかな?

すごく古臭いけど、ほぼ新しい感じ…ほぼね…まだXXE(またはそれに似た)バグの第3波(それとも第4波?)を待ってる。

Tailscale経由でアクセスを許可するのは、OpenSSHを使う限り安全だよね?

そうだよ、これはACLルールで管理されているラッパーだけに関わることだから。

リモートの第三者にコントロールを渡すのは、そうだね。

自分はTailscaleのヘビーユーザーだから、かなり信頼してるけど、TailscaleのSSH機能は使ったことがないんだ。OpenSSHのセキュリティ実績はかなり強力だと思うし、そんなセキュリティに敏感なツールで乗り換える理由がよくわからないな。

ソフトウェアをダウンロードできないマシンのブラウザを通じて、tailnetのマシンにアクセスするために使ったことがあるよ。

ほとんどは便利だけど、一般的には同意するよ。選択肢として持っておくのはいいと思う。

そうだね、基本的にはTailscaleをVPNとして使ってるだけだよ。彼らが言うように、一つのことをやるって感じ。

リモートモニターボックスの管理に使ってた。オフラインやオンラインのことを中央でSSHアクセスを管理する手段があったから。シンプルで便利で、アクセスも簡単に取り消せたよ。

Hacker Newsで議論の続きを見る