Tailscaleのセキュリティチームは、認証情報の窃取やサーバーのクラッシュ、root権限の奪取などに悪用されるおそれのある約12件の脆弱性について、パッチの開発を進めています。
Tailscaleは、WireGuardをベースにしたソフトウェア定義のメッシュ型仮想プライベートネットワーク(VPN)を開発しています。ユーザーは、場所を問わずコンピューターやサーバー、クラウドインスタンスを、ピアツーピア(P2P)の直接接続によって、同じ暗号化メッシュネットワーク(「tailnet」)につなげられます。
Cyberdione Labsは、Tailscale 1.104.2と、セルフホスト型のコントロールサーバーであるheadscale v0.29.5のセキュリティ監査中に、11件の脆弱性(総称してTailworm)を発見しました。これらの脆弱性には、まだパッチが提供されていません。
Cyberdione Labsの創業者であるErica Windisch氏は、脆弱性をTailscaleに報告するとともに、詳細を公開しました。同氏は「すべての発見事項は、改変していないリリース済みソフトウェア(tailscale v1.104.2、headscale v0.29.5)を使い、ラボ環境で再現して検証しました」と述べています。
「これらの欠陥が早く知られれば、影響を受けるデバイスの修正が加速すると研究者は考えています。脆弱性は研究者が持ち込んだものではありません。もともと存在していたものを、わずかな労力で発見しました」(同氏)
下の表は、セキュリティ上の問題を影響するコンポーネント別に分類したものです。最も深刻なのはTailscaleのSSHサーバーの問題です。認可された攻撃者が、標的のtailnet上でUnixソケットのフォワーディングを通じて、root権限でコードを実行できる可能性があります。
| コンポーネント/機能 | 仕組み(何が壊れるか) | 攻撃者の前提条件 | 主な結果 |
|---|---|---|---|
| Tailscale SSH(root権限で動作するtailscaledの組み込みSSHサーバー) | Unixソケットのフォワーディング(ssh -R/-L)が、パスの確認とファイル操作をroot権限で実行します。競合状態と権限降格の欠如により、通常のセッションが特権リソースの置換、接続、削除を行えます |
承認済みデバイス1台と、SSHポリシールール1件(headscaleではフォワーディングが自動的に許可され、SaaSではルールごとに許可) | 標的サーバーでのroot権限による実行、登録キーの窃取、任意のrootファイルの削除 |
| Tailscaleのアプリコネクター(conn25、試験的機能) | コネクターが、検証を行わずに攻撃者の指定した宛先へトラフィックを変換します。実際の宛先に対してネットワークACLが参照されません | コネクター機能を付与されたデバイス | クラウドのメタデータ(認証情報の窃取)や社内LANに到達できます。Kubernetesでは、クラスター内のすべてのサービスにも到達できます |
| headscaleコントロールサーバー(セルフホスト環境) | 認証なしのリソース枯渇(メモリの増大、キャッシュの追い出し) | インターネットから到達可能であること(アカウントは不要) | コントロールサーバーのクラッシュループ、組織全体での新規デバイス登録の妨害 |
| Tailscale DERPクライアント(すべてのエージェントに含まれるリレー接続) | 悪意あるリレーの応答を上限なく読み込む | クライアントを悪意あるリレーに向けられること | クライアントエージェントのメモリ枯渇 |
| tailscale serve(ローカルサービスの公開) | UNIXソケットへのTCPフォワーディングに、HTTP経路にある保護がありません。さらに、マウントごとの認可に競合状態があります | 運用者がフォワーディングを設定すること(またはピアがマウント確認の競合を突くこと) | ノードの管理APIへのリモートアクセス、一部のリクエストによるアプリの認可の回避 |
Tailscaleのチームは月曜日、Cyberdione Labsの報告を受け取ったと説明しました。これらの問題に対処するパッチを、本日中に提供すべく作業を進めているとしています。
開発チームは、報告された脆弱性が「深刻」であることも認めました。標的システムで権限を持つ攻撃者が、昇格した権限で操作を実行できる可能性があるためです。
Tailscaleは次のように説明しています。「確認したTailscale SSHの問題の大半は、権限昇格に関するものです。状況によっては、すでにTailscale SSHでの接続を認可されているユーザーが、設定されたローカルユーザーの権限を超える操作を行える可能性があります。昇格した権限を得られる場合もあります」
「これらは深刻なセキュリティ上の問題であり、そのように扱っています。悪用の可否は、接続するユーザーやデバイスに付与された権限、システムの構成、その他の条件に左右されます。調査結果の全容と、影響を受ける可能性のある構成については、引き続き確認を進めています」
ただし、問題の深刻さにもかかわらず、TailscaleはTailscale SSH機能の無効化は推奨しないとしています。
TailscaleのエンジニアリングVPであるMike Shaver氏は、次のように述べています。「最も重要な点からお伝えします。現時点の評価では、全員にTailscale SSHの無効化を推奨するわけではありません」
代わりに、Tailscaleのチームは、一部の脆弱性を緩和できる対策を公表しました。
- SSHアクセスポリシーを見直す。アクセスが必要なユーザーとデバイスに限定します。
- 不要ならSSHフォワーディングを無効にする。tailscaledサービスの環境でTS_SSH_DISABLE_FORWARDING=1を設定し、サービスを再起動します。Tailscale SSH全体を無効にせずにSSHフォワーディングだけを無効にでき、より深刻な問題のいくつかを緩和できます。
- 重要なシステムへのアクセスを見直す。調査の間は、Tailscale SSHのアクセスポリシーを一時的に厳格化し、アクセスが必要な特定のユーザーとデバイスだけが接続できるようにすることを検討してください。
Tailscaleの開発者は、これらの問題を修正する新バージョンを10月27日(火)中にリリースすることを目指しています。ユーザーには、更新の準備を進め、「パッチ適用済みのTailscaleクライアントが公開され次第、適用する」よう呼びかけています。