エディタ拡張の正規更新でバックドアが届いたときの確認と対応(Cursor の Claude Code 2.1.313 事例)
Cursor の拡張機能マーケットプレイスで、改ざんされた Anthropic.claude-code 2.1.313 が約 11 時間配布された。該当期間に入れた・自動更新された端末は、SSH の鍵とトンネルの痕跡を確かめ、隔離・除去・認証情報の更新まで行う。
何が起きたか
- 配布期間は日本時間 2026-10-29 18:27 ごろ〜10-30 05:35 ごろ。影響は最大 5,000 人と Cursor が公表。
- 改ざん版はホスト名、ユーザー名、環境変数の名前、Git のメールアドレス、グローバル IP などを集め、攻撃者の SSH 公開鍵を追加し、リバース SSH トンネルを常駐させようとした。
- Cursor は該当版を削除し、マーケットプレイスを一時停止、鍵を更新して再開。攻撃者のサーバーは停止済みとしている。Anthropic が作ったものではない。
- Socket は、初期報道が挙げた Open VSX や npm にはこの版が公開された記録はないと説明しており、対象は Cursor のマーケットプレイス経由に限られる。
確認と対応(該当期間に導入・更新した端末)
- 拡張のバージョンを確かめる。2.1.313 が入った履歴があれば影響ありとして扱う。2.1.314 以降に更新する。
~/.ssh/authorized_keysにsvc-telemetryというコメントの鍵がないか確かめる(Cursor が示した痕跡)。見つけたら削除だけで済ませず、端末を隔離する。- Cursor が公開した確認スクリプトで影響を確かめ、修復スクリプトで除去する。自動起動の仕込み(LaunchAgents、systemd のユーザーユニット、cron、ログイン時スクリプト)と、外向きの常駐 SSH 接続も見る。
- 端末にあった認証情報を更新する。SSH 鍵、Git のトークン、クラウドや AI ツールの API キー、環境変数に入っていた秘密。環境変数の「名前」が送られているため、どの秘密を持っていたかは攻撃者に知られている前提で考える。
- その端末から SSH でつながる先(サーバー、踏み台)の
authorized_keysと接続ログも確かめる。
日頃の備え
- 拡張の自動更新は「マーケットプレイスが乗っ取られれば即座に全員に届く」経路になる。重要な端末では自動更新を切るか、更新を少し遅らせる運用を検討する(npm の待機期間と同じ考え方)。
- SSH の受け付けが不要な開発端末では sshd を止めておくと、鍵を足されても使われにくい。
- 拡張の棚卸しは 権限ゼロでも危ない:検索を乗っ取る拡張機能と閲覧 URL を送る拡張機能を棚卸しする、AI ツールの設定に仕込まれる永続化は AI 開発ツール・エディタ設定ファイル経由の永続化をチェックする も参照。
追記(2026-11-05、Microsoft の解析)
- 対象は改ざん版 2.1.312 と 2.1.313。配布期間は米国太平洋夏時間 2026-10-29 2:27〜13:35 ごろで、確認された経路は Cursor のマーケットプレイスだけ。Visual Studio Marketplace と npm の
@anthropic-ai/claude-codeは影響なし。 - 永続化の痕跡: macOS は LaunchAgent
com.apple.sysmond.plist、Linux はユーザー crontab の@reboot、Windows は「SysMon」タスクとスタートアップのsysmon.cmd。macOS・Linux では~/.config/.smtと~/.config/.smtkも作られる。 - SSH 接続に失敗しても、鍵や自動起動設定は残る場合がある。これらは拡張の保存先の外にあるので、拡張の削除・更新やサーバー停止では消えない。痕跡を手で確かめること。
- 環境変数は特定の語を含む最大 40 件の「名前」が送信対象で、値を盗む挙動は確認されていない。
- Microsoft の推奨: インストールと自動更新の履歴を確かめて証拠を保全し、実行の証拠がある端末は隔離する。鍵の指紋や起動設定の中身を照合して不正なものだけを消す。認証情報へのアクセスが疑われるか、端末を信頼できない場合は、正常な端末から認証情報を変更しセッションを失効させる。
- 出典: @MalwareBibleJP · 2026-11-05