Cursorのマーケットプレイスで改ざん版のClaude Code拡張が配られた|影響を受ける条件と、Macで確かめる4つの点検

Cursorが10月29日、改ざんされたClaude Code拡張の配布を公表

AIコードエディタのCursorは2026年10月29日(米国時間)、Cursorの拡張マーケットプレイスで、改ざんされたClaude Code拡張(Anthropic.claude-code)が配られていたと公式ブログで告知しました。告知は10月30日に更新され、対象の版と、改ざん版の目印(攻撃の痕跡を見分けるためのファイルの指紋やIPアドレス)の一覧が更新されています。2026年11月8日に確かめた時点で、告知の更新はこの10月30日のものが最後です。

Claude Code拡張は、AnthropicのAIエージェント「Claude Code」をエディタの中から使うための拡張機能です。改ざん版はAnthropicが開発したものとは別物で、拡張が読み込まれると、パソコンに外部から接続するためのSSH鍵と、ログイン時に自動で動く設定を書き込もうとします。対象はmacOSとWindowsで、Cursorのマーケットプレイスから拡張を入れた人、または自動更新した人です。この記事ではMacでの点検を扱い、Windowsの点検方法はCursorの告知へ案内します。

以下、影響を受ける条件と改ざん版の動作、版番号では見分けにくい理由、Macで影響の有無を確かめる4つの点検、痕跡が見つかったときの対応の順にまとめます。

この件の要点

10月29日夕方から翌朝にCursorでClaude Code拡張を入れた・更新した人は、点検が必要

影響を受ける人

10/29 18:27〜10/30 5:35(日本時間)に拡張を入れた人

Cursorのマーケットプレイスから、MacかWindowsで入れた・更新した場合です。

改ざん版がMacで行うこと

SSH鍵の追加と自動起動の設定

MacやGitの情報も、攻撃者のサーバーへ送ります。

見分け方

版番号ではなく中身で確かめる

改ざん版は2.1.312や2.1.313と表示されます。Cursorは、正規版と同じ2.1.312を名乗るものもあったとしています。

点検したあと

2.1.314以降へ更新

痕跡があれば、Cursorの修復スクリプトと認証情報の入れ替えへ進みます。

影響を受けたのは、10月29日夕方から翌朝に拡張を入れた人

Cursorの告知によると、改ざん版がマーケットプレイスに置かれていたのは、米国太平洋時間の10月29日午前2時27分から午後1時35分までです。日本時間では10月29日18時27分から10月30日5時35分までの約11時間にあたります。

この時間帯に、Cursorのマーケットプレイスから2.1.312または2.1.313の拡張を入れた人と、自動更新でその版になった人が対象です。セキュリティ企業StepSecurityは、Cursorの説明として、改ざん版を受け取った利用者は最大5,000人だったと解析記事で伝えています。

改ざん版の配布から差し替えまで(日本時間)

10月28日 5:27

正規の2.1.312が、拡張の公開サイトOpen VSXに公開される

10月29日 18:27

改ざん版が、Cursorのマーケットプレイスから配られ始める

10月30日 5:35

Cursorが改ざん版を削除し、マーケットプレイス全体を止める。点検後に作り直して再開

10月30日 10:07

正常な2.1.314がOpen VSXに公開される

出典: Cursorの告知とStepSecurityの時系列(UTC・米国太平洋時間から換算)、Open VSXの公開日時(2026年10月31日に取得)

Cursorは改ざん版を見つけた時点で削除し、念のためマーケットプレイス全体を止めて作り直しました。ほかの拡張に改ざんがないことを監査で確かめ、Cursor側の鍵も入れ替えています。攻撃者のサーバーは、ホスティング事業者の協力で停止しました。

StepSecurityは当初、改ざん版の2.1.313がOpen VSXに掲載され、そこからCursorのマーケットプレイスへ同期されたと報告していました。その後、Anthropicの社員が10月30日に掲示板サイトのHacker Newsで、2.1.313はOpen VSXなどの公式の配布先に一度も公開していないと説明しました。StepSecurityも記事を訂正し、配布の場所をCursorのマーケットプレイスとしています。Open VSXは、WindsurfやVSCodiumなど、Cursor以外のVS Code系エディタも拡張の入手先にしている公開サイトです。2026年11月8日に確かめた時点のOpen VSXの最新版は、11月7日(日本時間)に公開された2.1.319で、版の一覧に2.1.313はありません。

改ざん版は読み込まれた時点で、攻撃者のSSH鍵と自動起動の設定を仕込む

改ざん版は、拡張の本体ファイル「extension.js」に不正なコードを埋め込んでいます。StepSecurityの解析では、このコードは拡張が読み込まれた時点で動きます。Claudeとの会話を始める必要はありません。Macでは次の4つを試みます。

1. 情報を送る

Macの情報を攻撃者のサーバーへ

コンピュータ名、ユーザー名、Gitのメールアドレス、公開IPアドレス、環境変数の名前などです。

2. 鍵を足す

攻撃者のSSH鍵を登録

~/.ssh/authorized_keys に、svc-telemetry という名前の鍵を書き足します。

3. 自動起動を仕込む

ログイン時に動く設定を作る

com.apple.sysmond という、Appleの部品のような名前の設定ファイルを置きます。

4. トンネルを開く

攻撃者のサーバーとの間にSSHのトンネルを開く

Macから外へ接続し、その接続(リバーストンネル)を通って外からMacへ入れる状態にしようとします。約60秒ごとにつなぎ直します。

出典: Cursorの告知、StepSecurityの解析

Cursorによると、MacのSSH接続(リモートログイン)を有効にするには管理者の権限が要り、多くのMacでは改ざん版にその権限がありません。その場合はこの段階で失敗し、攻撃者はトンネルを通ってログインできなかったとCursorは説明しています。一方で、鍵の追加、自動起動の設定、情報の送信は行われたとしています。影響を受けた人全員に点検と修復を求めているのはこのためです。

システム設定でリモートログインを元から有効にしていたMacや、Cursorを管理者権限で起動していた場合は、トンネルが使えた可能性があります。StepSecurityが11月1日に公表したコードの解析でも、Macでリモートログインを有効にする処理は、パスワードなしでsudoを使える設定の場合にだけ成功するとしています。

Cursorは、正規版と同じ2.1.312を名乗る改ざん版もあったとしている

Cursorの告知(10月30日更新)は、対象を2.1.312と2.1.313の2つの版としています。このうち2.1.312は、Open VSXに10月28日から公開されている正規の版と同じ番号です。Open VSXに正規の2.1.313はなく、版の並びは2.1.312の次が2.1.314です。

そこで、Open VSXから正規の2.1.312(Apple シリコンのMac向け)を取得し、パッケージファイルの指紋(SHA-256のハッシュ値)を、Cursorが2.1.312の改ざん版として公表した指紋と比べました。あわせて、筆者のMacのCursorに入っていた2.1.312の本体ファイルとも比べています。

正規の版(Open VSXと筆者のMac)

2.1.312

パッケージの指紋(SHA-256)

b851e43b…

本体ファイル extension.js

1195816b…、3,685,536バイト。Open VSXの版と筆者のMacの版で一致

改ざん版の目印の文字列

0件

改ざん版(Cursorが2.1.312として公表した値)

2.1.312

パッケージの指紋(SHA-256)

fcbb327e…

本体ファイル extension.js

ecb58cb2…、3,692,922バイト

改ざん版の目印の文字列

svc-telemetry、134.209.82.225 を含む

2026年10月31日、macOS 27.0.1、Cursor 3.26.16で確認。改ざん版の指紋はCursorの告知から、バイト数と目印はStepSecurityの解析から引用(StepSecurityは、この本体ファイルが2.1.312と2.1.313の改ざん版に共通だとしています)。改ざん版そのものは取得していません。

Cursorが2.1.312の改ざん版として公表した指紋は、Open VSXの正規の2.1.312の指紋と一致しませんでした。StepSecurityも訂正後の記事で、改ざん版は2.1.312と2.1.313の両方で、Open VSXの2.1.312は別物の正常なファイルだとしています。11月1日に公表した解析では、改ざん版の本体ファイルは、正規の2.1.312の本体ファイルの先頭に7,386バイトの不正なコードを足したものでした。

同じ版番号でも、改ざん版かどうかは本体ファイルの中身で確かめられます。Cursorの修復スクリプトにも、改ざん版は本物の版番号のままなので中身で照合する、という趣旨のコメントがあります。筆者のMacの2.1.312は、拡張の導入記録では10月28日10時14分(日本時間、フォルダの日時は10時16分)に入ったもので、改ざん版が配られる前でした。本体ファイルも正規の版と一致しています。

Macで影響の有無を確かめる4つの点検

次のコマンドは、ファイルを読むだけで、削除や変更はしません。ターミナルにまとめて貼り付けて実行できます。Cursorのほか、WindsurfやVSCodium、VS Codeなどのフォルダ(ホームフォルダ直下の「.」で始まるフォルダ)もまとめて調べます。

echo '--- 1. 入っているClaude Code拡張と、フォルダの日時 ---'
find -H ~/.[^.]* -maxdepth 2 -type d -path '*/extensions/anthropic.claude-code-*' -exec ls -ldT {} + 2>/dev/null
echo '--- 2. 改ざん版の目印がある拡張 ---'
find -H ~/.[^.]* -maxdepth 3 -path '*/extensions/anthropic.claude-code-*/extension.js' -exec grep -lE 'svc-telemetry|134\.209\.82\.225' {} + 2>/dev/null
echo '--- 3. 攻撃者のSSH鍵 ---'
grep -qs svc-telemetry ~/.ssh/authorized_keys && echo "svc-telemetry key found" || echo "No key found; machine not impacted"
echo '--- 4. 自動起動の設定、置かれたファイル、動いているトンネル ---'
ls ~/Library/LaunchAgents/com.apple.sysmond.plist ~/.config/.smt ~/.config/.smtk 2>/dev/null
find "${TMPDIR:-/tmp}" /tmp/ -maxdepth 1 -name '.stk_*' 2>/dev/null
pgrep -fl '\.stk_|\.config/\.smt'

「---」で始まる行は、どの点検の結果かを示す見出しとして表示されます。4つの点検で見ているものは次のとおりです。

  • 1の日時:拡張のフォルダの日時は、拡張を入れた時刻の目安です。改ざん版のあとに2.1.314へ更新済みだと、古い版のフォルダは消えていることがあります。痕跡の有無は3と4で確かめます。
  • 2の目印:攻撃者のサーバーのIPアドレスと、鍵の名前が本体ファイルに含まれていないかを探します。
  • 3の鍵:Cursorが告知している確認コマンドそのものです。「No key found; machine not impacted」と出れば、攻撃者の鍵は登録されていません。
  • 4の痕跡:自動起動の設定ファイル、改ざん版が置くファイル、トンネルを保つプロセスを探します。

筆者のMacで実行した結果が次の出力です。1で3つの拡張フォルダが見つかり、2と4は見出しの行だけで、3は「No key found」でした。

--- 1. 入っているClaude Code拡張と、フォルダの日時 ---
drwxr-xr-x@ 9 user  staff  288 Oct 27 14:58:53 2026 ~/.cursor/extensions/anthropic.claude-code-2.1.311-darwin-arm64
drwxr-xr-x@ 9 user  staff  288 Oct 28 10:16:17 2026 ~/.cursor/extensions/anthropic.claude-code-2.1.312-darwin-arm64
drwxr-xr-x  8 user  staff  256 Aug 23 14:52:26 2025 ~/.vscode/extensions/anthropic.claude-code-1.0.89
--- 2. 改ざん版の目印がある拡張 ---
--- 3. 攻撃者のSSH鍵 ---
No key found; machine not impacted
--- 4. 自動起動の設定、置かれたファイル、動いているトンネル ---

痕跡があるときの表示も確かめるため、目印の文字列だけを書いたダミーの拡張、鍵、ファイルを別のフォルダに作り、同じコマンドを実行しました(ホームフォルダと一時フォルダの場所を差し替えています)。改ざん版の拡張、鍵、自動起動の設定、置かれたファイルが、それぞれの見出しの下に表示されます。

--- 1. 入っているClaude Code拡張と、フォルダの日時 ---
drwxr-xr-x@ 3 user  staff  96 Oct 31 06:40:43 2026 home/.cursor/extensions/anthropic.claude-code-2.1.311-darwin-arm64
drwxr-xr-x@ 3 user  staff  96 Oct 31 06:40:43 2026 home/.cursor/extensions/anthropic.claude-code-2.1.313-darwin-arm64
--- 2. 改ざん版の目印がある拡張 ---
home/.cursor/extensions/anthropic.claude-code-2.1.313-darwin-arm64/extension.js
--- 3. 攻撃者のSSH鍵 ---
svc-telemetry key found
--- 4. 自動起動の設定、置かれたファイル、動いているトンネル ---
home/.config/.smt
home/Library/LaunchAgents/com.apple.sysmond.plist
tmp/.stk_0123456789

どちらも2026年10月31日、macOS 27.0.1のzsh 5.9を対話モード(個人設定なし、zsh -f -i)で起動し、貼り付けと同じ形でコマンドを流して実行。ユーザー名とダミー環境の場所は短く書き換えています。

Windowsでは、PowerShellで実行する確認コマンドと修復スクリプトがCursorの告知に載っています。

改ざん版の痕跡が見つかったときの対応

4つの点検の結果に応じて、次の流れで対応します。改ざん版が置いた自動起動の設定は、拡張を消しても動き続けます。2〜4のどれかで見出し以外の行が表示された場合は、拡張を消すだけで終わらせず、次の手順まで進めます。

確認

点検2〜4で、見出し以外に目印・鍵・ファイル・プロセスのどれかが表示された?

点検2・4は見出しだけ、3は「No key found」

拡張を2.1.314以降へ更新

エディタの拡張の画面で版を確かめて更新します。2026年11月8日時点のOpen VSXの最新版は2.1.319です。

どれかが表示された

修復スクリプト → 認証情報の入れ替え

下の4つの手順を順に進めます。個人のMacは手順2からです。

  1. 会社のMacなら先に連絡する:社内のセキュリティ担当へ連絡し、指示に従ってネットワークから外します。痕跡を消す前に、Cursorは端末を隔離するよう勧めています。
  2. Cursorの修復スクリプトを実行する:cursor.com のremediate-macos.shを保存します。50行ほどの短いスクリプトなので、テキストエディタで中身を確かめてから、影響を受けたユーザーのまま(sudoを付けずに)bash remediate-macos.shで実行します。改ざん版の拡張、自動起動の設定、トンネルのプロセス、置かれたファイル、攻撃者の鍵を取り除き、最後に「done: backdoor removed」などの結果を表示します。
  3. 拡張を入れ直す:2.1.314以降を入れます。
  4. 認証情報を入れ替え、必要ならMacを作り直す:GitHubなどのトークン、クラウドのキー、SSH鍵、パッケージ公開用のトークンなど、そのMacから使えた認証情報を、別の安全な端末から無効にして作り直します。修復スクリプトが「note: something listens on localhost:22; the tunnel exposed it」と表示した場合は、MacがSSHの接続を受け付けていて、トンネルを通じて外から接続できる状態だったことを示します。この表示が出た場合は、Macを初期化して作り直すことも検討します。

出典: Cursorの告知、StepSecurityの解析、修復スクリプトの内容(2026年10月31日に取得)

修復スクリプトは、何も見つからなければ「clean: no backdoor found」と表示して終わります。

まずは4つの点検を実行し、拡張を2.1.314以降へ

Cursorでマーケットプレイスから拡張を自動更新している人は、日本時間10月29日の夕方から翌朝に改ざん版を受け取った可能性があります。改ざん版は2.1.312や2.1.313と表示され、Cursorによると正規版と同じ番号を名乗るものもあったため、確かめるには拡張の中身を調べます。

上の4つの点検は数秒で終わります。見出しの行と「No key found」だけなら拡張を2.1.314以降へ更新し、ほかに表示されたものがあればCursorの修復スクリプトと認証情報の入れ替えへ進んでください。