CursorのClaude Code拡張機能にSSHバックドア、最大5,000人に影響の恐れ
出典: cursor.com

Cursorの拡張機能マーケットプレイスで不正版を配布

Cursorの拡張機能マーケットプレイスで10月29日、AnthropicのClaude Code拡張機能を改変した不正版が約11時間配布されました。Cursorは、最大5,000人に影響した可能性があるとしています。不正コードは端末情報を送信し、SSHを使って外部から接続できる状態を作ろうとするものでした。

Claude Codeは、自然言語の指示でコード作成やデバッグを支援するAnthropicのAIアシスタントです。CursorはVisual Studio Code(VS Code)向け拡張機能に対応するコードエディターで、今回の不正版はCursorのマーケットプレイスに置かれていました。

Cursorは、不正版をAnthropicが開発したものではなく、調査では他の拡張機能や公式配布版に影響した証拠はなかったと説明しています。Anthropicの技術スタッフも、自社のシステムや従業員の端末が侵害されたのではなく、攻撃者がCursorのマーケットプレイスへのアクセスを使って改変版を公開したと述べました。

情報収集とSSH接続を試みる仕組み

不正コードは拡張機能のJavaScriptファイルに挿入され、拡張機能の読み込み時に実行されます。Claude Code上で利用者が操作しなくても動作し、ホスト名、ユーザー名、OS、公開IPアドレス、Gitのメールアドレスなどを収集します。

さらに、攻撃者が用意したSSH公開鍵を端末に追加し、SSHサービスを有効化して、端末から攻撃者のサーバーへリバースSSHトンネルを張ろうとします。再起動後も接続を試せるよう、macOSではLaunchAgent、Windowsではタスクスケジューラーなどを使った永続化も試みました。

通常のSSH接続では、利用者側から接続先のサーバーへ接続します。リバースSSHトンネルでは、外部から直接到達しにくい端末が外部サーバーへ接続し、そのサーバーに作られたポートを経由して端末側のサービスへ通信を戻します。今回は感染端末が攻撃者のサーバーへ接続し、攻撃者がサーバー側の割り当てポートからトンネルを通って端末のSSHサービスへ接続する構成でした。

SSHの設定不備があっても情報送信や永続化は残る

Phorionの分析では、macOSのコードは管理者権限なしでリモートログインの状態を確認しようとします。通常ユーザーでは状態ではなく権限エラーが返るため、SSHが無効でも有効化の処理へ進まない場合があります。

Windowsでは、SSHサーバーを設定する処理が標準環境にない「/bin/sh」を通じて実行されるため、設定に失敗する可能性があります。SSHサービスが動いていない端末では、この不具合によりトンネルを使った接続が成立しない場合があります。

一方、SSH接続に失敗しても、攻撃者の鍵や永続化用ファイルが追加され、端末情報が送信される可能性は残ります。収集対象には、認証情報が含まれる可能性のある環境変数の名前も含まれていましたが、初期の送信で環境変数の値そのものを盗む仕組みではありませんでした。

Cursorの対応と影響確認

Cursorは不正版をマーケットプレイスから削除し、調査のためマーケットプレイス全体を一時停止しました。アクセス状況を監査して他の拡張機能が改変されていないことを確認し、鍵を交換したうえでマーケットプレイスを再開しています。

また、攻撃者のサーバーをホスティングしていた事業者と連携してサーバーを停止し、感染端末からの接続と端末情報の送信を妨げました。ただし、拡張機能をアンインストールするだけでは、独立して動く永続化用スクリプトが残る可能性があります。

Cursorは、対象時間内にマーケットプレイスから拡張機能をインストールまたは更新した利用者に、端末の確認と修復を案内しています。SSHの認証鍵に「svc-telemetry」という文字列があるかを調べ、影響の兆候があれば端末の隔離、鍵や永続化機構の除去、利用可能だった認証情報とセッションの更新などを行うよう求めています。