2026 年 10 月 29 日、Cursor の拡張機能マーケットプレイスで Anthropic の Claude Code 拡張の改ざん版が半日ほど配られていました。拡張を消しても仕掛けは PC に残るので、この記事では自分の PC が対象かを見分ける方法と、見つかったときの対処の流れを 2026 年 10 月 31 日時点の公式の情報をもとにまとめます。

この記事の要点

  • 対象は、10 月 29 日の午前 2 時 27 分〜午後 1 時 35 分(米太平洋時間)に Cursor のマーケットプレイスから Anthropic.claude-code の 2.1.312 か 2.1.313 を入れた、または更新した macOS と Windows です。Open VSX や Microsoft の VS Code マーケットプレイス、npm 版は悪意なしとされています。
  • 確認の基本は、~/.ssh/authorized_keys に svc-telemetry という名前の鍵が足されていないかを見ることで、Cursor が確認用のコマンドを出しています。
  • 鍵が見つかったら、拡張を消すだけでは足りません。常駐する仕掛けと鍵を消し、その PC から使っていた認証情報を別の端末から作り直します。

今回のバックドアとは

バックドアは、家に他人用の裏口をこっそり作られるようなものです。実際には、正規の手続きを通らずにあとから PC へ入れるよう仕込まれた仕組みのことで、今回は SSH という遠隔ログインの仕組みが使われました。

入り口に使われたのは authorized_keys です。合鍵を持っていい人の名簿のようなもので、正体はログインを許す公開鍵を並べたファイルなんです。改ざん版は、ここに攻撃者の鍵を書き足していました。

Phorion と OpenSourceMalware の解析によると、改ざん版は extension.js の先頭に短いコードが足されたもので、拡張が読み込まれた時点で動きます。Claude との会話を始めなくても動くため、入れただけで使っていない人も対象に入ります。Phorion が示した動作の順番を図にすると次のとおりです。

拡張が読み込まれる

攻撃者の鍵を追記

SSH の有効化を試す

逆向きトンネルを張る

常駐の仕掛けを置く

ホスト情報を送る

図の「常駐」は、再起動しても仕掛けが自動で動き続けるように登録することを指します。Cursor によると攻撃者のサーバーはすでに止められていて、SSH を有効にする段階も管理者権限が無いため大半の macOS と Windows では失敗したはず、という見方です。それでも鍵の追記と常駐、ホスト情報の送信は実行されたので、確認と対処は欠かせません。

どの入手元が対象か

影響があったのは、Cursor のマーケットプレイスから入れた拡張だけです。入手元ごとの扱いは次の表のとおりで、Cursor 以外の行は OpenSourceMalware の解析によります。

入手元影響
Cursor マーケットプレイス(該当の時間帯)あり(2.1.312 と 2.1.313)
Open VSXなし
Microsoft の VS Code マーケットプレイスなし
npm の @anthropic-ai/claude-codeなし

Microsoft の VS Code で拡張を入れた人や、ターミナル版の Claude Code を npm で入れた人は対象外です。配られていた時間を日本時間に直すと 10 月 29 日の 18 時 27 分ごろから 30 日の 5 時 35 分ごろまでで、夕方から翌朝にかけての自動更新も含まれます。

OS については、Cursor の告知に載っている版は Apple シリコンの Mac 向け(darwin-arm64)と Windows 向け(win32-x64)だけです。Intel の Mac と Linux 向けが配られたかは、公式には書かれていません(10 月 31 日時点)。Phorion の解析では、コードに Linux 向けの処理も入っているので、Linux で Cursor を使っていた人は念のため ~/.ssh/authorized_keys も確かめてください。

自分の PC が対象かを確かめる手順

いちばん手早いのは、Cursor が告知に載せている確認用のコマンドを実行する方法です。Mac ではターミナルで次の 1 行を実行します。

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

Windows では PowerShell で次を実行します。ユーザーのフォルダと C:\ProgramData\ssh の 2 か所にある鍵のファイルを調べるものです。

$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" }

「svc-telemetry key found」と出たら影響ありです。ただ、このコマンドが見ているのは鍵に付いた svc-telemetry という名前だけなので、Phorion は鍵ごとの指紋(フィンガープリント)でも探すよう勧めています。指紋の一覧は次のコマンドで出せますが、この使い方は私が補ったもので公式の手順ではありません。出てきた指紋を、Cursor の告知にある攻撃者の鍵の指紋と照らし合わせてください。

ssh-keygen -lf ~/.ssh/authorized_keys
# 攻撃者の公開鍵の指紋
# SHA256:0Z6R+DF64Do2nwQic8a7kkfDLNNk4IiK+2U2Rci4htk

鍵のほかに残る痕跡の場所を OS ごとに並べたのが次の表です。Cursor が告知に載せた IOC(攻撃の跡を見分けるための目印)と Phorion の解析をもとにしています。

項目macOSLinuxWindows
攻撃者の鍵~/.ssh/authorized_keys同左%USERPROFILE%\.ssh\authorized_keys、C:\ProgramData\ssh\administrators_authorized_keys
常駐スクリプト~/.config/.smt、.smtk同左%USERPROFILE%\.config\smt.cmd、smtk
常駐の登録LaunchAgents の com.apple.sysmond.plistcrontab の @rebootタスク SysMon、Startup の sysmon.cmd
一時鍵$TMPDIR/.stk_*/tmp/.stk_*%TEMP%\.stk_*

実際に入られたかどうかは SSH のログで見ます。Phorion によると、トンネル経由のログインは localhost(127.0.0.1 か ::1)から svc-telemetry の鍵で認証されたように記録されるそうです。

見つかったときの対処

鍵が見つかったときは、Cursor の告知にある次の順番で進めます。

確認コマンドで判定

ログで IOC を探す

PC を隔離する

鍵・常駐・トンネルを削除

PC を作り直すか

別の端末で認証情報を更新

拡張を消すだけでは独立した常駐スクリプトが動き続けるので、削除は Cursor が配っているスクリプトに任せるのが確実です。Mac 用は https://cursor.com/static/security/claude-code-extension/remediate-macos.sh 、Windows 用は https://cursor.com/static/security/claude-code-extension/remediate-windows.ps1 で、拡張と常駐、トンネルのプロセス、攻撃者の鍵を消し、何か残れば 0 以外の終了コードで終わります。

# Mac:root ではなく被害を受けたユーザーで、保存したフォルダで実行
bash remediate-macos.sh
# Windows:管理者として開いた PowerShell で実行
powershell -ExecutionPolicy Bypass -File .\remediate-windows.ps1

私はスクリプトの中身まで読めていないので、実行前に一度目を通しておくと安心です。Linux 用のスクリプトは Cursor の告知にはなく(10 月 31 日時点)、Phorion は @reboot の cron と ~/.config/.smt などを手で消す手順を示しています。

認証情報の作り直しは、影響を受けた PC から使っていたサービスの鍵やトークン、ログインのセッションが対象です。送られたのは環境変数の名前だけで値は含まれていませんが、裏口からあとで読まれた可能性は否定できない、と Cursor は説明しています。作業は影響を受けた PC ではなく、信頼できる別の端末から行ってください。

使いどころと注意点

Phorion によると、Mac では SSH の状態を確かめる処理にバグがあり、Remote Login(SSH でのログインを受け付ける設定)がもともとオフなら外から入る経路は成り立ちにくいそうです。ただ、すでにオンだった Mac やあとでオンにした Mac ではすぐ入れてしまうので、Phorion も防御として頼らないよう注意しています。Mac だから平気と考えず、確認コマンドは走らせておくのがよいと私は思います。

authorized_keys には自分で登録した鍵も入っています。消すのは攻撃者の鍵の行だけにして、手で直すなら前もってファイルのコピーを取っておくと安全です。

Cursor は 10 月 30 日 11 時 30 分(米太平洋時間)に対象の版と IOC を更新していて、続報で範囲が変わるかもしれません。作業の前に告知を開き直すのが確実です。Anthropic の公式ページでは、声明を確かめられませんでした(10 月 31 日時点)。報道(BankInfoSecurity や The Register)によると、Anthropic はこの改ざん版の作成にも公開にも関わっていないと説明していて、Cursor の告知にも Anthropic が作ったものではないと書かれています。

もっと知りたい人へ

出典どうしの食い違い

Phorion の初報は 2.1.313 だけを挙げていましたが、のちに Cursor の告知に合わせて 2.1.312 も加えました。Cursor の告知(10 月 30 日更新)は 2.1.312 と 2.1.313 の両方で、この記事は Cursor に合わせています。OpenSourceMalware の現在のページは、Cursor マーケットプレイスの 2.1.313 を悪意あり、npm 版と Microsoft 版、Open VSX 版を悪意なしとしています。日本語の記事のなかには、発生源を「Open VSX」、対象を「2.1.313」だけとしたものもあります。配布時間は Cursor の時刻から計算すると約 11 時間 8 分で、Ars Technica の見出しは「nearly 12 hours」です。

送られた情報と通信先

ホスト情報は暗号化されない HTTP で 134.209.82[.]225:8099/beacon に送られます。中身はホスト名、ユーザー名、OS、アーキテクチャ、ホームと作業中のフォルダ、git の user.email、公開 IP で、環境変数は KEY|TOKEN|SECRET|PASS|AWS|GCP に当てはまる名前を最大 40 個です。逆向きトンネルは同じアドレスの TCP 22 番に tunnel ユーザーで張られ、60 秒ごとに再試行します。ifconfig[.]me や api[.]ipify[.]org への通信は、それだけでは目印になりません。OpenSourceMalware によると追加のプログラムはダウンロードせず、ほぼすべてのエラーを握りつぶすので、失敗しても利用者は気付きにくいそうです。

Windows と Linux の実装の不具合

Phorion によると、Windows では PowerShell のコマンドを /bin/sh 前提の処理に通しているため、標準的な環境ではうまく動かない可能性があります。Linux では crontab を確かめる処理の不具合で、再実行時に既存の cron ジョブが消えるおそれがあるので、自分の cron の登録が残っているかも見ておくと安心です。

ハッシュと Cursor 側の対応

改ざんされた extension.js の SHA-256 は次のとおりで、VSIX ごとのハッシュは Cursor の告知の IOC 欄に載っています。トンネル用の鍵の指紋もあわせて置いておきます。

extension.js: ecb58cb29078d9646ad1dcdbe51526f2d9cfea06be5fb2ab183e8ecc3ab6bf15
トンネル用の鍵: SHA256:KOAU57+ZG6u3MG4WwzPzPX2O5YEe9qdOC1Bl+6MVyDQ

Cursor は悪意ある版を消したうえでマーケットプレイスを一時止め、ほかの拡張の監査や鍵の入れ替え、作り直しを経て復旧したと書いています。