TailscaleのSSH脆弱性を修正するv1.104.4が公開、旧版には転送停止などを推奨
出典: tailscale.com

TailscaleのSSH機能などに、認証済みの接続からroot権限で操作される可能性のある脆弱性が見つかり、修正を含むクライアント版v1.104.4が2026年10月27日に公開されました。TailscaleはSSH機能の一律停止を求めていませんが、更新前の対策として、アクセス対象の見直しやSSH転送の停止を案内しています。

SSH転送の処理がroot権限で実行される問題

Tailwormと総称される11件の脆弱性は、Cyberdione LabsがTailscale 1.104.2とセルフホスト型の制御サーバーheadscale 0.29.5を監査して報告しました。対象はSSHサーバーのほか、アプリコネクター、headscale、DERP中継クライアント、tailscale serveに及びます。

Tailscale SSHは、接続を許可された端末やユーザーに対し、接続先で利用するローカルのUnixユーザーを割り当てます。Unixソケット転送では、SSHセッションからの要求を受けてソケットに接続したり、ソケットを作成したりします。監査対象版には、その処理をroot権限で動くtailscaledが行う経路がありました。

その結果、通常ユーザーとして許可されたセッションから、設定されたローカルユーザーの権限を超える操作が可能になる場合があります。ソケットのパス確認と実際の操作の間にパスが差し替わる競合状態も報告され、接続先や操作対象が確認時と異なる可能性がありました。

脆弱性が及ぶ範囲と攻撃の前提

SSH関連の問題は、Tailscaleへの接続認証そのものを破るものではありません。攻撃者には、対象のtailnetで接続を認められた端末とSSHポリシーが必要です。実際に可能な操作は、権限やシステム構成などの条件に左右されます。

監査では、許可されたUnixソケット転送からDockerやsystemdのソケットへ到達する例が試されました。Dockerの例には、ソケットが許可されたディレクトリ内にある構成を使ったものと、パスの競合状態を利用したものがあり、それぞれ条件が異なります。

ほかの問題として、実験段階のアプリコネクターが意図しない宛先へ通信を転送すること、headscaleが未認証のリソース消費で停止すること、悪意ある中継先への接続でクライアントのメモリを消費することなども報告されました。tailscale serveでは、Unixソケットへの転送やマウント単位の権限処理にも問題が見つかっています。

v1.104.4の修正とheadscaleの扱い

SSH転送の処理は、接続ごとの監視プロセスと、認証済みユーザーの資格情報を使う子プロセスで行う方式に再設計されました。転送ソケットへの接続、作成、削除を、そのユーザーの権限で行う変更が含まれます。

tailscale serveからローカルAPIソケットへの転送拒否、転送先の再確認、DERPクライアントによる応答本文の読み込み制限なども修正されました。これらの修正はTailscaleの公開リポジトリに入り、v1.104.4として配布されました。

アプリコネクターでは、ループバックやクラウドのメタデータアドレスなど一部の宛先を拒否する変更が進められていましたが、報告の更新時点では、プライベートLANや一般のインターネット向け通信は制限対象に含まれていませんでした。headscale向けの修正はクライアント版とは別に扱われており、v0.29.6以下を導入した環境にも引き続き緩和策が必要とされています。

更新前に案内された対策

Tailscaleは、SSHアクセスを必要なユーザーと端末に絞り、機密システムへのポリシーを一時的に厳しくするよう案内しました。SSH転送が不要な場合は、tailscaledのサービス環境変数にTS_SSH_DISABLE_FORWARDING=1を設定してサービスを再起動すると、SSH機能全体を止めずに転送を無効化できます。

Tailscaleは、脆弱性の影響や悪用可能性が接続ユーザー・端末の権限、システム構成などに依存すると説明し、全利用者にTailscale SSHの停止を推奨しませんでした。修正版の提供後は、該当するTailscaleクライアントを更新するよう案内しています。

Cyberdione Labsは、headscale 0.29.5ではSSH転送を個別に無効化できず、許可されたSSH接続では転送が有効になると報告しています。そのため、同環境ではアクセス許可の範囲を確認し、headscale側の修正状況も踏まえて対応する必要があります。