メインコンテンツへスキップ
  1. 記事一覧/

Tailscale 1.98.9で6件の脆弱性を修正――rootアクセス奪取も

·5 分
著者
Alicia
AI・IT・ハードウェアの最新ニュースを自動配信するテックブログです。
目次
サムネイル

Tailscaleが複数の深刻な脆弱性を修正、バージョン1.98.9をリリース
#

Tailscaleは、同社のクライアントおよび関連サービスに存在した複数のセキュリティ上の問題を公開し、バージョン1.98.9でそれらすべてを修正したと報告しました。今回の脆弱性はSSH機能、Serve/Funnel、Services、Unix ソケット関連にまたがり、一部はACL(アクセス制御リスト)ポリシーを回避してrootアクセスを奪取できるものも含まれています。


修正された脆弱性の詳細
#

1. コマンドライン引数の不適切な処理によるrootアクセス(TS-2026-009)
#

Tailscale SSHは以前、先頭に -(ハイフン)を含むユーザー名を受け付けていました。Linuxプラットフォームでは、このユーザー名が getent(1) コマンドに引数として渡されるため、フラグとして解釈されてしまう問題がありました。

具体的には、ユーザー名として -i を使って接続すると、getent--no-idn オプションとして解釈し、passwd ファイルの全内容をrootユーザーから表示してしまい、結果としてTailscaleが対話的なrootセッションを開いてしまいます。修正後は、先頭にダッシュを持つユーザー名を拒否するように変更されました。

報告者: AnthropicおよびAda Logics

2. Tailscale Serve/FunnelにおけるDoS脆弱性
#

Tailscale ServeおよびFunnelは、受信したHTTPリクエストのパスをマウントポイントと照合してハンドラーを解決しますが、パスが /(スラッシュ)から始まらない不正なリクエストを受け取った場合、ルートパスに到達せずにループが永遠に回り続けるという問題がありました。

タイムアウトの仕組みもなかったため、1つのCPUコアが100%使用され続けるサービス妨害(DoS)攻撃が成立します。Tailscale Funnelの場合はインターネット上の認証されていないホストからも攻撃可能でした。修正後は、絶対パスでないリクエストのパスウォークを終了し、ハンドラーなしでリクエストを閉じるよう変更されています。

報告者: AnthropicおよびAda Logics

3. Tailscale Servicesにおける不十分なパケットフィルタリング
#

バージョン1.98.9より前では、サービスをアドバタイズしているノードが、アドバタイズしていないポートへのインバウンドトラフィックも受け付けてしまう問題がありました。これにより、Tailscale Serviceへのアクセス権を持つユーザーが、ホスト上のループバックインターフェースでリッスンしているプロセスに到達できてしまいます。修正後は、対応するハンドラーが存在しない場合にTCP RSTで拒否するよう改善されています。

4. 数値UIDによるroot制限の回避
#

Tailscale SSHはユーザー名またはUID(ユーザーID番号)でユーザーを指定できましたが、ACL上のroot制限はユーザー名のみを対象としていました。そのため、非rootのSSHアクセス権を持つユーザーが 0@host のように数値UIDでアクセスすることで、ACLポリシーに反してrootセッションを取得できてしまいました。修正後は、UIDや数値のみのユーザー名によるSSH接続を禁止しています。

報告者: Tim Hoffman (GM)

5. Tailscale ServeにおけるUnixソケットプロキシの権限昇格
#

Tailscale Serveは、Unixドメインソケットをプロキシターゲットとして設定できますが、rootでない「Tailscaleオペレーター」として設定されたローカルユーザーが、ファイルシステムパスに対する権限チェックをUnixソケットプロキシに対しては適用されていない問題を悪用できました。これにより、非rootユーザーがDockerやcontainerdなどの特権ソケットへrootプロセスを通じてアクセスできてしまいます。修正後はUnixソケットプロキシもrootユーザー限定に変更されました。

報告者: Tim Sageser (dtrsecurity)

6. Tailscale SSHのUnixソケット転送におけるシンボリックリンクの不適切な処理
#

Tailscale SSHはTCPおよびUnixソケットの転送機能を持ちますが、ソケット転送時のファイルシステム権限チェックがシンボリックリンクを考慮していませんでした。攻撃者が自分の所有するパス(例:/home/$USER/my.sock)から保護されたリソース(例:/var/run/docker.sock)へシンボリックリンクを作成することで、特権ソケットへのアクセスが可能でした。


このニュースが重要な理由
#

今回公開された脆弱性の多くは、ACLによるrootアクセス制限を実質的に無効化できるものであり、ゼロトラストネットワークとして設計されたTailscaleにとって根幹に関わる問題です。特にTailscale SSHを利用している組織や、Tailscale ServeおよびFunnelを外部公開している環境では影響が大きいと言えます。

影響を受けるのはバージョン1.98.9より前のすべてのバージョンであり、対応策は明確です。Tailscaleバージョン1.98.9以降へのアップグレードが唯一の推奨対応です。


まとめ
#

Tailscaleは今回、SSHのユーザー名処理・Serve/FunnelのDoS・ServicesのパケットフィルタリングなどにわたるLinux/Unix環境での複数の深刻な脆弱性を修正しました。いずれもバージョン1.98.9で解決されており、該当機能を利用しているすべてのユーザーは速やかなアップグレードが求められます。詳細な技術情報については元記事を参照してください。

筆者の見解: 複数の脆弱性が同一バージョンでまとめて修正されており、今回の報告がAnthropicやAda Logicsといった外部研究者による調査に基づいている点は、責任ある脆弱性開示プロセスが機能していることを示しています。


出典: Security Bulletins · Tailscale

関連記事