AIコーディングエディタ「Cursor」の拡張機能マーケットプレイスで、AnthropicのClaude Code拡張機能を改ざんした悪意あるパッケージが公開されていたことが判明した。Cursorのセキュリティ通知と、エンドポイント検知・対応(EDR)ベンダーPhorionの技術解析によると、このパッケージには端末に常駐し、外部からの遠隔操作を可能にするSSHバックドアが仕込まれていた。攻撃者は正規の拡張機能と同じ配信枠を悪用しており、開発者が通常の更新操作を行うだけで悪意あるコードを取り込む可能性があった。

Anthropicの技術スタッフであるFelix Riesebergは、同社のシステムや従業員のPCが侵害された事実はなく、第三者がCursorのマーケットプレイスへのアクセス権を悪用して改ざん版を公開したと説明している。一方、マルウェアには権限昇格に関する制約や実装上の不備があり、多くの端末ではSSHサービスの有効化に失敗した。外部サーバーへのリバースSSHトンネルを確立できた場合でも、端末側のSSHサービスが停止していれば、トンネル経由の遠隔ログインは成立しない。

ただし、遠隔ログインに失敗しても、端末への影響がなくなるわけではない。拡張機能が読み込まれると、ホスト情報の収集と外部送信、不正なSSH公開鍵の登録、バックグラウンドでの永続化処理が実行される。これらは拡張機能本体とは独立して動作するため、更新やアンインストールだけでは除去できない。影響を受けた端末では、不正なSSH鍵や常駐プロセスの確認に加え、認証情報の漏洩を想定した対応が必要となる。

AD

配信経路と対象となった2つのバージョン

Cursorが2026年10月30日に更新したセキュリティ通知によると、影響を受けた悪意あるパッケージはAnthropic.claude-codeのバージョン2.1.312および2.1.313の2つである。初期の通知では2.1.313のみが対象とされていたが、調査の進展に伴い2.1.312も追加された。配信期間は、太平洋夏時間の2026年10月29日午前2時27分から午後1時35分(協定世界時午前9時27分から午後8時35分)までの約11時間だった。

Phorionが解析したマルウェアのペイロードには、macOS、Windows、Linux向けのセットアップ処理と永続化ロジックが実装されていた。ただし、Cursorの公式通知で改ざんパッケージの配布が確認されているのはmacOSとWindows向けである。Linux向けの攻撃コードが含まれていたことは、Linux用の改ざんパッケージが実際に配信されたことを意味しない。マルウェアの対応OSと、配信が確認されたOSは区別する必要がある。

対象バージョンも初期の発表から変更されているため、影響調査では10月30日に更新されたCursorの通知を基準とする必要がある。今後、別のプラットフォーム向けパッケージや追加の改ざん版が確認されれば、調査範囲の見直しも必要になる。Phorionの解析は攻撃コードの動作を把握するための資料として活用し、実際の配布範囲や修復手順についてはCursorの公式情報と照合することが重要だ。

項目 Cursorマーケットプレイス配布版 Anthropic公式配布チャネル 確認事項
配布パッケージ 2.1.312、2.1.313の改ざん版 同じ改ざん版の配布は確認されず Cursorの更新済みセキュリティ通知
配布確認OS macOS、Windows 本件による影響は報告されていない Linux向けの攻撃コードも存在するが、配布確認は2OS
配信期間 2026年10月29日の約11時間 該当なし 太平洋夏時間02:27〜13:35
公開権限 第三者が不正公開に利用 Anthropicは社内システム・端末の侵害を否定 Felix Riesebergの説明
脅威の残存性 拡張機能削除後も永続化ファイルが残存する可能性 該当なし LaunchAgentやスタートアップへのスクリプト登録

Felix Riesebergは、改ざん版はAnthropicがビルドまたは公開したものではなく、npmやMicrosoftのVS Code Marketplaceなど、同社の公式チャネルで配布されるパッケージは影響を受けていないと説明している。Cursorも問題のパッケージをマーケットプレイスから削除し、不正配布を防ぐために拡張機能マーケットプレイス全体を一時的に停止した。開発者は、Claude Code拡張機能の入手先、インストール・更新日時、バージョンを確認する必要がある。

拡張機能の読み込みと同時に動作するSSHバックドア

Phorionの技術解析によると、攻撃者は正規の拡張機能コードを構成するextension.jsの先頭に、即時実行関数(IIFE)の形式で悪意あるコードを挿入していた。VS CodeやCursorの拡張機能では、ユーザーの操作などを契機としてactivateコールバックが実行されるが、今回の即時実行関数はNode.jsがファイルを読み込んだ時点で評価される。つまり、ユーザーがClaude Codeの機能を操作しなくても、拡張機能のコードが読み込まれるだけでバックドアのセットアップが始まる仕組みだった。

悪意あるコードは、まず端末のSSH認証設定を変更し、外部サーバーとのリバースSSHトンネルの確立を試みる。続いてOSごとの永続化処理を実行し、収集した端末情報を攻撃者のサーバーへ送信する構成だった。これらの処理は通常の拡張機能の動作とは独立しており、エディタを終了した後も通信を継続できるよう設計されていた。

SSH認証設定の変更では、被害端末の~/.ssh/authorized_keysファイルに攻撃者が管理するEd25519公開鍵を追加する。この鍵にはsvc-telemetryという、システム監視用の認証情報を思わせるコメントが付けられていた。対応する秘密鍵を持つ攻撃者は、端末上でSSHサービスが稼働していれば、パスワードを入力せずにそのユーザーとしてログインできる状態になる。

次に、マルウェア内部に埋め込まれていた別の秘密鍵を使い、攻撃者が管理する外部サーバーへのリバースSSHトンネルを開く。これは被害端末から外部サーバーへSSH接続し、外部サーバー上に割り当てられたポートへの通信を、被害端末のローカルポート22へ転送する仕組みである。攻撃者は外部サーバーの転送ポートを経由することで、インターネットから直接接続できない端末のSSHサービスにもアクセスできる。トンネル接続はバックグラウンドプロセスとして切り離され、失敗した場合には約60秒間隔で再接続を試みる設計だった。

端末の再起動後も接続を維持するため、OS別の永続化処理も用意されていた。macOSではユーザー領域のLaunchAgentに設定ファイルを配置し、ログイン時にバックドアを起動する。Windowsではタスクスケジューラを利用してSYSTEM権限のタスク登録を試み、権限不足で失敗した場合には、現在のユーザーのスタートアップフォルダにスクリプトを配置する仕組みだった。いずれも、拡張機能本体の削除後に残存し得る処理である。

端末情報の収集では、ホスト名、ログインユーザー名、OSの種類とアーキテクチャ、ホームディレクトリとカレントディレクトリのパス、Git設定に登録されたメールアドレス、パブリックIPアドレスなどが対象となった。さらに、環境変数のうちKEY、TOKEN、SECRET、PASS、AWS、GCPなどの文字列を名前に含む変数を最大40個抽出していた。

Phorionによれば、この処理で収集されたのは環境変数の名前であり、値そのものではなかった。ただし、変数名から利用中のクラウドサービスや認証情報の種類を推測できるため、攻撃者が侵入先の優先順位を判断する材料になる。また、SSHバックドアを通じた遠隔ログインが成功した場合には、環境変数に保存されたトークンや鍵情報にもアクセスできる可能性がある。

収集された情報は、HTTP POSTリクエストを使って攻撃者のサーバーに送信された。通信には端末情報に加え、SSH鍵の登録や永続化処理の実行状態も含まれており、攻撃者が各端末への侵入準備の進捗を把握できる構成だった。

AD

遠隔侵入を妨げた実装ミスと残存するリスク

マルウェアにはSSHを利用した複数段階の侵入処理が組み込まれていたが、実装上の不備や権限不足によって、多くの一般的な環境では遠隔ログインに必要な条件を満たせなかった。特にmacOSでは、SSHサービスの有効化処理に問題があった。

macOSでは通常、外部からSSH接続を受け付ける「リモートログイン」が無効になっていることが多い。マルウェアはsystemsetup -getremoteloginコマンドで設定状態を確認し、出力にOffが含まれる場合に有効化コマンドを実行するよう設計されていた。しかし、この確認コマンドを一般ユーザー権限で実行すると、設定状態ではなく管理者権限が必要である旨のメッセージが返される。このメッセージにはOffが含まれないため、マルウェアはSSHサービスの有効化処理を実行せずに終了してしまう。

仮にこの判定処理が正常に動作したとしても、systemsetupを使ってリモートログインを有効化するには管理者権限が必要となる。マルウェアにはOSの脆弱性を利用して権限を昇格させる機能が含まれておらず、通常はエディタを起動したユーザーの権限で動作する。このため、管理者権限のない端末では、SSHサービスを新たに有効化することができなかった。

ただし、すでにリモートログインを有効にしているmacOS端末では事情が異なる。攻撃者の公開鍵がauthorized_keysに登録されていれば、SSHサービスを新たに有効化する必要がないためだ。感染後にユーザーがSSHサービスを有効にした場合も、残存する公開鍵によって不正ログインが可能になるおそれがある。また、外向きのリバースSSHトンネルが確立されていても、ローカルポート22でSSHサービスが待ち受けていなければ遠隔ログインは成立しないが、サービスが稼働している端末では侵入経路になり得る。

Windows向けの実装にも不具合があった。PowerShellを使ってWindowsのOpenSSH SSH Server(sshd)サービスを構成・起動する補助処理で、コマンドの実行先が/bin/shに固定されていたのである。標準的なWindows環境にはこのパスが存在しないため、SSHサービスのセットアップは失敗する。さらに、SYSTEM権限のスケジュールタスクを登録する処理も、通常のユーザー権限では実行できない。

Cursorは攻撃者のサーバーをホストしていたクラウド事業者と協力し、サーバーを停止させたと説明している。これにより、報告された攻撃用サーバーへのリバースSSH接続や端末情報の送信は機能しなくなった。

一方、SSHサービスの有効化に失敗した端末でも、ホスト名、ユーザー名、パブリックIPアドレス、Gitメールアドレスなどの情報が外部へ送信された可能性がある。また、不正な公開鍵や永続化スクリプトが残っていれば、端末のSSH設定が後から変更された際に侵入を許すおそれもある。攻撃者のサーバーが停止したことは、端末内に残されたバックドアの除去を意味しない。

遠隔ログインが成立しなかったとしても、拡張機能の更新だけでは不十分である。感染端末には不正なSSH鍵や常駐スクリプトが残存し得るため、それぞれを確認して削除する必要がある。SSHサービスが稼働していた端末では、実際にログインが行われたかどうかを認証ログやネットワークの記録から調査し、認証情報へのアクセスや社内ネットワークへの横展開がなかったかも確認しなければならない。

開発者が実施すべき調査とバックドアの除去

該当期間中にCursorのマーケットプレイスからClaude Code拡張機能をインストールまたは更新した可能性がある開発者や組織は、拡張機能を最新版へ更新するだけでなく、端末内に残された不正なファイルやプロセスを調査する必要がある。マルウェアはOSのスタートアップ領域に独立したスクリプトを書き出すため、拡張機能をアンインストールしてもバックドアが残る可能性がある。

Cursorは、影響確認、端末の隔離、バックドアの除去、認証情報のローテーションを推奨している。まず、2026年10月29日の該当時間帯にmacOSまたはWindowsのCursor環境へAnthropic.claude-codeの2.1.312または2.1.313を導入した端末を洗い出す。バージョン表示に加え、拡張機能のインストール日時や更新ログ、実体ファイルのハッシュ値を照合することが望ましい。悪意あるコードの実行やバックドアの設置を示す痕跡が確認された端末は、ネットワークから隔離して調査を進める。

感染痕跡の確認では、SSH認証ファイル、永続化設定、実行中のプロセス、ネットワーク通信の記録を調べる。Cursorのセキュリティ通知には、~/.ssh/authorized_keysにsvc-telemetryという文字列が含まれているかを確認する手順が掲載されている。ただし、Phorionはコメント名だけでなく、SSH公開鍵のフィンガープリントそのものを照合することを推奨している。今回のマルウェアも、公開鍵の重複登録を防ぐ際にコメント文字列を利用していたため、正確な識別には鍵本体の照合が適している。

バックドアの除去には、Cursorが公開しているプラットフォーム別の公式修復スクリプトを利用できる。ただし、実行権限はOSによって異なる。macOSでは永続化ファイルがユーザーのホームディレクトリ配下に作成されるため、rootではなく影響を受けたユーザーのアカウントで実行する必要がある。一方、Windowsでは管理者として起動したPowerShellから修復スクリプトを実行するよう指定されている。

主な確認・削除対象は以下の通りである。

  • macOS環境

    • ~/.ssh/authorized_keys内の不正な公開鍵エントリ
    • ~/Library/LaunchAgents/com.apple.sysmond.plistに登録された自動起動設定
    • ~/.config/.smt、~/.config/.smtkなどの永続化スクリプトおよび鍵ファイル
    • 一時ディレクトリに作成された.stk_で始まる秘密鍵ファイル
  • Windows環境

    • %USERPROFILE%\.ssh\authorized_keys内の不正な公開鍵エントリ
    • C:\ProgramData\ssh\administrators_authorized_keys内の不正な公開鍵エントリ
    • タスクスケジューラに登録されたSysMonタスク
    • %USERPROFILE%\.config\smt.cmd、%USERPROFILE%\.config\smtkなどの永続化ファイル
    • %APPDATA%\Microsoft\Windows\Start Menu\Programs\Startup\sysmon.cmdなどのスタートアップスクリプト

ファイルの削除に加え、実行中のリバースSSHトンネルや再接続処理も停止させる必要がある。特にmacOSでは、LaunchAgentの設定ファイルを削除するだけでなく、登録済みのジョブを停止することが重要だ。Windowsでもスケジュールタスクやスタートアップの登録状況を確認し、再起動後にバックドアが復活しないことを検証する。感染の状況によっては、端末の初期化や信頼できるイメージからの再構築も検討する必要がある。

バックドアの除去後は、認証情報の漏洩可能性を調査する。端末情報が攻撃者へ送信されていたほか、SSHサービスが稼働していた環境では遠隔ログインの可能性を完全には排除できない。影響端末から利用可能だったGitHubやGitLabのアクセストークン、AWSやGoogle Cloudなどのクラウド認証情報、データベース接続情報、SSH秘密鍵などについて、アクセス状況と漏洩の可能性を確認する必要がある。

侵害された可能性のある認証情報は、信頼できる別の端末から無効化・再発行する。特に、SSHサービスが有効だった端末や、不審なログイン・ファイルアクセスの痕跡がある端末では、アクセス可能だった認証情報が漏洩したことを前提に対応するべきだ。既存のトークンやセッションを失効させるとともに、認証ログやクラウドサービスの操作履歴を確認し、不正利用が継続していないことを検証する必要がある。

AD

マーケットプレイスの公開権限悪用と未解明の侵入経路

今回の攻撃では、正規の拡張機能に似た名前の偽パッケージを新たに公開するのではなく、Cursorのマーケットプレイスにある既存のClaude Code拡張機能の配信枠が悪用された。開発者が信頼している公式の拡張機能名で悪意ある更新が提供されたため、配布元の名前や拡張機能の識別子を確認するだけでは改ざんを見抜けない状況だった。

ソフトウェアのサプライチェーン攻撃では、正規パッケージに似た名前を使うタイポスクワッティングや、放置されたリポジトリの乗っ取りなどが知られている。今回の事案では、それらとは異なり、正規の拡張機能に対応する配信経路から悪意あるバージョンが提供された。ユーザーがエディタ上に表示された更新を通常通り適用するだけで、攻撃コードが開発環境に入り込む可能性があった。

Cursorは問題のパッケージが自社のVS Code拡張機能マーケットプレイスを通じて配布されたことを認めており、Anthropicが開発したものではないと説明している。AnthropicのFelix Riesebergも、攻撃者がCursorのマーケットプレイスへのアクセス権を悪用したと述べ、同社の内部システムや従業員端末の侵害を否定した。

Cursorは問題のパッケージを検知後に削除し、不正配布を遮断した上で、マーケットプレイス全体を一時停止して監査を実施した。その結果、他の拡張機能に同様の改ざんは確認されなかったとしている。また、関連する鍵のローテーションとマーケットプレイス基盤の再構築を行い、サービスを復旧させた。ほかのバージョンやAnthropicの公式配布経路が影響を受けた証拠も確認されていないという。

ただし、攻撃者が正規の拡張機能を上書き公開できる権限をどのように取得したのかについて、Cursorは詳細を公表していない。公開用の認証トークンが漏洩したのか、開発者アカウントの管理に問題があったのか、あるいはマーケットプレイス基盤の認証・認可機構に欠陥があったのかは不明である。初期侵入経路を特定できなければ、同じ手口による再発をどこまで防止できるかも判断できない。

AIエージェントやコーディング支援ツールの普及に伴い、IDEの拡張機能は開発者のソースコードや認証情報、ローカルの実行環境に広くアクセスするようになっている。企業のソースコードやクラウドサービスのAPIキーが集まる開発端末では、拡張機能の侵害が組織全体のセキュリティリスクにつながり得る。

今回のインシデントでは、マルウェアの実装ミスによって多くの端末で遠隔ログインが妨げられたものの、環境情報の送信や永続化処理は実行されていた。拡張機能の安全性を確保するには、利用者側の確認だけでなく、マーケットプレイスの公開権限の管理、配布物の完全性検証、不正な更新を検出する仕組みが欠かせない。Cursorが今後、攻撃者による公開権限の取得経路と再発防止策をどこまで明らかにするかが焦点となる。