当社のAIエンジンNeutronが、UCバークレーのCyberGymベンチマークで97.1%のスコアを記録しました。 詳細を見る

ディープダイブ

ディープダイブ

Cursor 上の Claude Code 拡張機能のトロイの木馬版がSSHバックドアを仕込む

Cursor のマーケットプレイスで Claude Code 拡張機能の悪意ある 2.1.313 がSSHバックドアを追加しました。2026年10月29日に最大5,000ユーザーがインストールしました。

要点

  • Anthropic の公式 VS Code 拡張機能 Claude Code の悪意あるビルド、バージョン 2.1.313 が、2026年10月29日、約11時間にわたり Cursor の拡張機能マーケットプレイス経由で配布されました。Cursor は最大5,000ユーザーがインストールしたとし、このビルドは Anthropic が開発したものではないと述べています。
  • このビルドは、拡張機能のメインJavaScriptファイルの先頭に挿入された66行のローダーを含みます。~/.ssh/authorized_keys に攻撃者が管理するSSH鍵を追加し、ローカルのSSHサービスを有効化しようとし、逆方向SSHトンネルを開き、プラットフォームごとの永続化を仕掛けます。
  • OpenSourceMalware が2026年10月30日にコード解析を公開しました。Cursor は当該バージョンを削除し、マーケットプレイスを閉鎖して再構築し、攻撃者のサーバーを停止させました。他の拡張機能は改ざんされていません。CVE は割り当てられておらず、2026年10月30日時点で CISA KEV には登録されていません。
  • 10月29日に Cursor のマーケットプレイスから Claude Code をインストールまたは更新した場合は、下記の svc-telemetry チェックを実行し、除去手順に従ってください。拡張機能のアンインストールだけでは不十分です。ペイロードは独立した永続化を残します。

影響を受けるか?

以下がすべて成立する場合に該当します。

  • VS Code ではなく Cursor を使っており、Cursor の拡張機能マーケットプレイスから Claude Code 拡張機能をインストールまたは更新した。
  • インストールまたは更新が、悪意あるバージョンが入手可能だった2026年10月29日の午前2時27分頃から午後1時35分頃(太平洋時間)の間に行われた。
  • インストール済みのバージョンが 2.1.313 である。更新が有効な場合 Cursor は拡張機能を自動的にインストールするため、自分で選んだ記憶よりもバージョン番号が重要です。

以下の経路では影響を受けません。OpenSourceMalware がこれらを正常と確認しています。

  • npm パッケージ @anthropic-ai/claude-code。
  • Open VSX の Claude Code 拡張機能。
  • Microsoft Visual Studio Code Marketplace の Claude Code 拡張機能。

バージョン 2.1.313 は Anthropic の公式リリースに一度も存在しませんでした。Anthropic の公開リリースは2026年10月27日の 2.1.312 から10月30日の 2.1.314 へ飛んでおり、悪意あるバージョン番号は Cursor のマーケットプレイスにしか存在しませんでした。

ペイロードが自分のマシンで実行されたか確認しましょう。ローダーの最も確実な痕跡は、追加されるSSH鍵です。macOS と Linux では次を実行します。

grep -qs svc-telemetry ~/.ssh/authorized_keys && echo "svc-telemetry key found" || echo "No key found; machine not impacted"

Windows では PowerShell で実行します。

$files = "$HOME\.ssh\authorized_keys", "C:\ProgramData\ssh\administrators_authorized_keys" | Where-Object { Test-Path $_ }
if ($files -and (Select-String svc-telemetry $files)) { "svc-telemetry key found" } else { "No key found; machine not impacted" }

これらのチェックは Cursor のセキュリティ通知によるものです。鍵が見つからなくても、拡張機能が一度も実行されなかった証明にはなりません。バックドアの鍵の追加が完了しなかったことだけを示します。「侵害されたか確認するには?」の指標が残りをカバーします。

修正方法

悪意ある拡張機能はマーケットプレイスから消えたため、対応は除去と確認です。

  1. Cursor で Claude Code 拡張機能をアンインストールし、エディターを再起動します。Cursor で引き続き Claude Code が必要な場合は、再構築されたマーケットプレイスから再インストールし、バージョン 2.1.314 以降であることを確認します。
  2. 上記の svc-telemetry チェックを実行します。鍵が見つかった場合は、まず「チェックで鍵が見つかった場合の対処」に進みます。
  3. プラットフォーム用の Cursor の修復スクリプトを実行します。macOS では影響を受けたユーザーとして remediate-macos.sh、Windows では管理者 PowerShell から remediate-windows.ps1 を実行します。スクリプトは拡張機能、永続化の仕組み、トンネルプロセス、攻撃者の鍵を除去し、何かが残っていれば0以外の終了コードを返します。
  4. 鍵がなくなると報告されるまで svc-telemetry チェックを再実行します。

Anthropic は2026年10月30日、バージョン 2.1.314 を Open VSX と Microsoft VS Code Marketplace に公開しました。この2つのマーケットプレイスの拡張機能は、通常どおり正常なビルドへ更新されます。

悪意あるコードの動作

改変されたファイルは extension.js だけです。OpenSourceMalware は、正当な拡張機能バンドルの前に66行の即時実行関数が挿入されているのを確認しました。悪意あるコードは拡張機能モジュールのロード時、つまり VS Code の起動時と拡張機能の webview の表示時に実行されます。パッケージのライフサイクルスクリプトは関与せず、モジュールをロードするだけで発火します。

ローダーは macOS、Linux、Windows で同じ連鎖を実行します。

  1. 偵察。 ホスト名、ローカルユーザー名、OS、CPUアーキテクチャ、ホームディレクトリ、カレントディレクトリ、git config --global user.email のグローバルGitメールアドレス、そして KEY、TOKEN、SECRET、PASS、AWS、GCP のいずれかの文字列を含む最大40個の環境変数の名前を収集します。値は送信されません。名前だけでも、そのマシンがどのクラウドプロバイダーとどの種類の認証情報を使っているかを明らかにします。
  2. 公開鍵の追加。 ~/.ssh をモード 0700 で作成し、svc-telemetry というコメント付きの Ed25519 公開鍵を ~/.ssh/authorized_keys に追記し、ファイルをモード 0600 に設定します。
  3. SSHサービスの有効化。 macOS では sudo -n systemsetup -setremotelogin on で Remote Login を、Linux では systemctl で sshd を、Windows では PowerShell で OpenSSH Server をインストールして起動しようとします。
  4. 逆方向SSHトンネル。 組み込まれた OpenSSH 秘密鍵を .stk_<identifier> という一時ファイルに復号し、転送要求 -N -R '*:0:localhost:22' 付きで tunnel@134.209.82[.]225 へ繰り返し接続します。攻撃者のサーバーに、被害者のSSHサービスへ転送するポートの割り当てを求めます。ホスト鍵の検証は無効化され、60秒ごとに再接続し、利用可能なら autossh を優先します。
  5. 永続化。 macOS では ~/.config/.smt と ~/.config/.smtk、さらに RunAtLoad と KeepAlive を持つ com.apple.sysmond.plist という LaunchAgent を書き込みます。Linux では同じ2つのファイルを ~/.config に書き込み、@reboot エントリでトンネルスクリプトをユーザーの crontab に追加します。Windows では SYSTEM として実行を試みる SysMon という名前のスケジュールタスクを作成し、失敗時はスタートアップフォルダーのスクリプトに切り替えます。
  6. ビーコン。 1.5秒後、curl ifconfig.me と curl https://api.ipify.org で公開IPを取得し、収集した詳細を JSON として http://134.209.82[.]225:8099/beacon に暗号化されていない HTTP で POST します。2つ目の POST は http://127.0.0.1:8099/beacon に向かいます。応答は破棄されます。

ほぼすべての例外が握りつぶされるため、失敗しても目に見える兆候は残らず、正当な拡張機能はロードを続けます。挿入された段階はそれ以上何もダウンロードしません。OpenSourceMalware は第二段階のダウンローダーを発見しておらず、確認できたのはIP照会、ビーコン、対話的なトンネルだけです。

トロイの木馬化された更新はどう届いたか?

悪意あるビルドは、Claude Code 拡張機能の正当な ID anthropic.claude-code を使って Cursor の VS Code 拡張機能マーケットプレイスから公開され、Cursor はこれをバージョン 2.1.313 として配信しました。正当な発行者IDを持っていたため、新しい拡張機能ではなく通常の更新としてユーザーと自動更新に届きました。このバージョンは、2つの公式リリースの間、太平洋時間の午前2時27分頃から午後1時35分頃までの約11時間、入手可能でした。

公式バージョン 2.1.312(10月27日)から正常な 2.1.314(10月30日)までの流れ。悪意ある 2.1.313 は10月29日、11時間だけ Cursor のマーケットプレイスに存在しました。
図1: 悪意ある Claude Code 拡張機能のバージョンは、2つの Anthropic 公式リリースの間、Cursor のマーケットプレイスで入手可能でした(2026年10月27日〜30日)。出典: Cursor セキュリティ通知、Anthropic のリリース、OpenSourceMalware(2026年10月30日確認)。

Cursor は、インシデントを特定して当該バージョンを削除し配信を遮断した後、マーケットプレイス全体を閉鎖し、アクセスを監査し、鍵をローテーションして再構築したと述べています。さらに、攻撃者のサーバーを停止させるためホスティング事業者と連携し、逆方向トンネルとビーコンのエンドポイントは機能しなくなりました。

攻撃者がこのバージョンをどう挿入したかは公開では確定していません。The Hacker News は、その手法が依然不明と報じています。OpenSourceMalware は、解析した成果物の由来は確立されておらず、自分たちの発見は Anthropic 自身のリリースインフラが侵害されたことを証明するものではないと書いています。Cursor は OpenSourceMalware に対し、自社マーケットプレイスの Claude Code 拡張機能が「何らかの侵害を受けた」と伝えており、事象を Open VSX ではなく Cursor の配布経路に位置づけています。

攻撃の流れは?

一言でいうと、攻撃者は Cursor のマーケットプレイスが通常の更新として配信するトロイの木馬版 2.1.313 を仕込み、先頭に挿入されたローダーがエディターの再起動のたびに攻撃者サーバーへの持続的なSSH経路に変えました。

flowchart LR A["攻撃者が
2.1.313 を作成"] --> B["Cursor のマーケットプレイスが
更新として配信"] B --> C["VS Code が
extension.js をロード"] C --> D["先頭の66行ローダーが
先に実行される"] D --> E["svc-telemetry 鍵が
authorized_keys に追加"] D --> F["134.209.82[.]225 への
逆方向SSHトンネル"] D --> G["永続化: LaunchAgent、
cron、スケジュールタスク"] D --> H["ホスト詳細のビーコン
を :8099 へ送信"]

攻撃者に何ができるか?

この連鎖の目的は、SSH による持続的なリモートアクセスです。実際の到達範囲には限界があり、Cursor 自身の解析がそれを明確に述べています。

  • ほとんどの macOS と Windows のホストでは、SSH 有効化の段階が失敗しました。ローカルSSHサービスを有効にするには管理者権限が必要で、Cursor は「Cursor が管理者権限で起動されたという極めてまれな状況を除き」、悪意あるコードの誤りによりこの段階が失敗したと述べています。SSHサービスが待ち受けていなければ、トンネルは転送先のポート22を持たず、そのようなホストではオペレーターがログインすることはできませんでした。
  • それでも鍵の追加、永続化、ビーコンはそうしたホストに残り、マシンの詳細は攻撃者に届きます。Cursor は影響を受けたユーザーに、状況にかかわらず修復手順を踏むよう求めています。
  • SSHサービスが起動したホストでは、対応する秘密鍵を持つオペレーターが逆方向トンネル経由で接続し、被害者のユーザーアカウントとしてコマンドを実行できました。トンネルの目的を OpenSourceMalware はこう説明しています。
  • ビーコンが運ぶのはホストの詳細と環境変数の名前で、値ではありません。OpenSourceMalware は、SSHアクセスが成功すればオペレーターがアカウントを直接調べられるため、ビーコンは到達範囲を過大ではなく過小に示すと指摘しています。

両解析とも、後段のペイロードは観測されていません。

チェックで鍵が見つかった場合の対処

マシンを侵害されたものとして扱い、Cursor と OpenSourceMalware のガイダンスを組み合わせて、この順序で対応します。

  1. マシンをネットワークから切断し、隔離します。管理下の機器でポート22と8099の 134.209.82[.]225 を遮断します。
  2. クリーンアップの前にフォレンジック証拠を保全します。ドロップされたファイル、authorized_keys の行、LaunchAgent またはスケジュールタスク、そしてプロセスのテレメトリーです。OpenSourceMalware は、観測可能なファイルが侵害の全体を表すとは限らないため、まず証拠を収集するよう助言しています。
  3. 拡張機能、永続化の仕組み、実行中の ssh または autossh のトンネルプロセスを、Cursor のスクリプトまたは下記の指標に基づいて手作業で除去します。
  4. そのアカウントから到達可能な認証情報とセッションを、健全なシステムからローテーションします。SSH鍵、Gitホスト、パッケージレジストリ、クラウドコンソール、パスワードマネージャー、ブラウザーセッションです。
  5. 再構築するか評価します。OpenSourceMalware は、既知のアーティファクトの除去で信頼が回復すると仮定するより再構築が安全だと書いています。トンネルはアカウントへの対話的な経路を作っていたためです。

侵害されたか確認するには?

svc-telemetry 鍵チェックに加えて、公開された指標をエンドポイント、ネットワークログ、拡張機能インストールのテレメトリーで検索します。すべて Cursor のセキュリティ通知と OpenSourceMalware の解析に由来します。

検索すべきファイルと永続化:

  • コメント svc-telemetry を含む ~/.ssh/authorized_keys
  • ~/.config/.smt と ~/.config/.smtk(macOS、Linux)、または %USERPROFILE%\.config\smt.cmd と smtk(Windows)
  • $TMPDIR または %TEMP% の .stk_<10 hex> または .nc<PID>.js に一致するファイル
  • macOS の LaunchAgent ~/Library/LaunchAgents/com.apple.sysmond.plist(ラベル com.apple.sysmond)
  • SysMon という名前の Windows のスケジュールタスク、またはスタートアップフォルダーの sysmon.cmd
  • extension.js に 134.209.82.225 と svc-telemetry を含む、anthropic.claude-code-2.1.313-darwin-arm64 または anthropic.claude-code-2.1.313-win32-x64 という拡張機能フォルダー

ネットワーク指標:

  • 134.209.82[.]225 への接続すべて、特にポート22と8099
  • /beacon への HTTP POST。ループバックの 127.0.0.1:8099 への試行を含む
  • ifconfig.me と api.ipify.org への照会は正当なサービスです。証拠ではなく文脈として扱ってください

検索すべきプロセスのコマンドライン:

  • ssh -N -R '*:0:localhost:22' または autossh -M 0
  • StrictHostKeyChecking=no と UserKnownHostsFile=/dev/null の SSH オプション
  • schtasks /create /tn SysMon、systemsetup -setremotelogin on、Add-WindowsCapability -Online -Name OpenSSH.Server~~~~0.0.1.0

エンドポイントスキャン用のパッケージハッシュ。改変された VSIX は 432ccdee3801f99e52b8fe31f69ea9870118e96ea7ef9ecabed1479621b5ab62(darwin-arm64)と 3de1722901165769893bef57c72594e9a54459faa23f3091b136b79966edd081(win32-x64)、悪意ある extension.js は ecb58cb29078d9646ad1dcdbe51526f2d9cfea06be5fb2ab183e8ecc3ab6bf15 にハッシュされます。

単一の指標に一致しても、それは全体の連鎖の証明ではなく手がかりです。すべての段階が失敗した試行でも、ビーコンと鍵を残している可能性があります。

年表

  • 2026-10-27: Anthropic が Claude Code 拡張機能 2.1.312 を公開。インシデント前の最後の公式リリースです。
  • 2026-10-29: 太平洋時間の午前2時27分頃から午後1時35分頃の間、悪意ある 2.1.313 が Cursor の拡張機能マーケットプレイスで入手可能になります。Cursor は後に最大5,000ユーザーが影響を受けたと述べます。
  • 2026-10-29: Cursor が悪意あるバージョンを特定して削除し、配布を遮断し、予防措置として VS Code マーケットプレイス全体を閉鎖します。その後、鍵のローテーションとアクセス監査を経て再構築しました。
  • 2026-10-29: Cursor がホスティング事業者と連携し、攻撃者のサーバー 134.209.82[.]225 を停止させます。
  • 2026-10-30: Anthropic が Claude Code 拡張機能 2.1.314 を Open VSX と Microsoft VS Code Marketplace に公開します。
  • 2026-10-30: OpenSourceMalware が技術解析と侵害指標を公開します。チェックと修復スクリプトを含む Cursor のセキュリティ通知も公開されています。

よくある質問

npm パッケージ @anthropic-ai/claude-code は悪意がありましたか?

いいえ。OpenSourceMalware は npm パッケージ、Open VSX の拡張機能、Microsoft VS Code Marketplace の拡張機能を確認し、3つとも正常でした。ローダーを運んでいたのは Cursor のマーケットプレイスのバージョン 2.1.313 だけで、このバージョン番号は Anthropic の公式リリースに一度も存在しませんでした。

攻撃者はバックドアから実際にログインできましたか?

ほとんどのホストでは、できませんでした。Cursor は、ローカルSSHサービスの有効化に管理者権限が必要で、Cursor 自体が管理者権限で起動していなければ悪意あるコードの誤りによりこの段階が失敗したと述べています。SSHサービスが待ち受けていなければ、逆方向トンネルには転送先がありません。それでも鍵、永続化、ビーコンはインストールされ、Cursor は影響を受けたユーザーに状況にかかわらず修復を求めています。

悪意あるバージョンは自動的に配信されましたか?

はい。影響を受けたユーザーのほとんどはこれが経路だったと考えられます。OpenSourceMalware の Jenn Gile は、Claude Code を自動更新にしていれば誰でもマルウェアを受け取れたと指摘しています。マーケットプレイスは発行者のIDのもとで更新を配信するためです。Cursor は影響を受けたユーザーに直接連絡しています。

攻撃者にはまだ到達できますか?

いいえ。Cursor は攻撃者のサーバーがもう機能しないと述べています。ホスティングしていたクラウド事業者と連携して停止させたため、逆方向SSHトンネルとホスト詳細のビーコン POST は機能しません。影響を受けたマシンの鍵と永続化は、除去されるまで残ります。

影響を受けたマシンは再構築すべきですか?

評価してください。OpenSourceMalware は、既知のアーティファクトの除去で信頼が回復すると仮定するより再構築が安全だと書いています。トンネルはSSHサービスへのオペレーターが制御する経路を提供し、その後の活動は静的アーティファクトに現れないためです。最低限、鍵と永続化を除去し、到達可能な認証情報をローテーションし、認証、SSH、プロセスのログを確認してください。

誰がこれを発見し公表しましたか?

Dean Hardcastle が悪意ある更新をリアルタイムで発見して OpenSourceMalware に知らせ、その研究者 Paul McCarty と Jenn Gile が2026年10月30日に解析を公開しました。Cursor は指標、チェック、修復スクリプトを含む独自のセキュリティ通知を公開しました。The Hacker News は2026年10月30日に事象を報じ、初期報道で Open VSX が侵害されたとしていた記述を訂正しました。

参考資料

  • Cursor のセキュリティ通知「Security notice — malicious version of Anthropic.claude-code (2.1.313) identified in the Cursor Extension Marketplace」(2026年10月29日)。対象期間、5,000ユーザーという数字、SSH有効化段階の失敗解析、チェック、修復スクリプト、指標を含みます: https://cursor.com/blog/claude-code-extension-security-notice (2026年10月30日確認)
  • OpenSourceMalware の解析「Trojanized Claude Code Extension Plants an SSH Backdoor」(2026年10月30日)。66行ローダーの詳細、ビーコン、トンネル、永続化の仕組み、ハッシュを含みます: https://opensourcemalware.com/blog/trojanized-claude-code-extension-plants-persistent-ssh-backdoor (2026年10月30日確認)
  • このインシデントに関する Cursor の声明(2026年10月29日投稿): https://x.com/cursor_ai/status/2116074289053175808 (2026年10月30日確認)
  • Anthropic の Claude Code リリース。2.1.314 は2026年10月30日に公開され、2.1.313 は存在しません: https://github.com/anthropics/claude-code/releases (2026年10月30日確認)
  • The Hacker News「Official Claude Code Extension on Cursor Marketplace Trojanized with Persistent SSH Backdoor」(2026年10月30日)。更新の挿入方法が依然不明と報じています: https://thehackernews.com/2026/10/official-claude-code-vs-code-extension.html (2026年10月30日確認)
  • npm パッケージ @anthropic-ai/claude-code のページ。2026年10月22日〜28日の週に12,837,062ダウンロードを表示しており、拡張機能と同名の正常なパッケージの規模を示します: https://www.npmjs.com/package/@anthropic-ai/claude-code (2026年10月30日確認)