3
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Cursor で Claude Code 拡張 2.1.312・2.1.313 が改ざんされていた件、Windows で自分の PC を確かめた

3
Last updated at Posted at 2026-11-02

2026-10-29 の「2:27am PT」〜「1:35pm PT」(日本時間で 10/29 18:27〜10/30 5:35)、Cursor の拡張マーケットプレイスで、Claude Code 拡張の 2.1.312 と 2.1.313(Windows・macOS 向け)が改ざんされた版に差し替わっていました。Cursor の告知によると、Anthropic が作ったものではなく、SSH の裏口を仕込もうとします。

私は VS Code と Cursor の両方にこの拡張を入れています。自分の PC は大丈夫か。 Windows で、告知の痕跡を読み取りだけで確かめました。

結論: この PC に痕跡はありませんでした。見るところは「どのエディタから入れたか」と「その時間帯にそのエディタを開いていたか」です。両方に入れている人は、両方のフォルダを見ます。

  • VS Code から入れた 2.1.312 は、改ざん版と extension.js の中身が違った
  • Cursor は2025年10月から開いておらず、拡張は 2.0.1 のままだった
  • 2.1.313 は、公式の配布元に無い版番号だった
--- Claude Code extensions in each editor
Editor  Version           Sha256       Match
------  -------           ------       -----
.vscode 2.1.312-win32-x64 1195816b6ecc False
.vscode 2.1.314-win32-x64 927fe02283d2 False
.cursor 2.0.1-universal   d6657903df65 False

--- Indicators on Windows
svc-telemetry key  : False
SysMon task        : False
Startup sysmon.cmd : False
.config\smt.cmd    : False
.config\smtk       : False
TEMP\.stk_*        : False

検証環境: Windows 10 Home(19045)/ PowerShell 5.1 / 2026-11-02


確かめたスクリプト

告知の Windows の痕跡を並べたものです。何も変えず、何も消しません。 管理者として開いた PowerShell で動かしてください。 administrators_authorized_keys は SYSTEM と Administrators しか読めない決まりで(Microsoft のドキュメント)、普通の PowerShell では読めずに False と出ます。

$bad = 'ecb58cb29078d9646ad1dcdbe51526f2d9cfea06be5fb2ab183e8ecc3ab6bf15'  # extension.js of 2.1.312 / 2.1.313

'--- Claude Code extensions in each editor'
$roots = '.vscode', '.cursor', '.windsurf', '.vscode-insiders' |
  ForEach-Object { Join-Path $HOME "$_\extensions" } | Where-Object { Test-Path $_ }
Get-ChildItem $roots -Directory -Filter 'anthropic.claude-code-*' | ForEach-Object {
  $js = Join-Path $_.FullName 'extension.js'
  $h = if (Test-Path $js) { (Get-FileHash $js -Algorithm SHA256).Hash.ToLower() } else { '' }
  [pscustomobject]@{
    Editor  = $_.Parent.Parent.Name
    Version = $_.Name -replace '^anthropic\.claude-code-', ''
    Sha256  = if ($h) { $h.Substring(0, 12) } else { '(no extension.js)' }
    Match   = ($h -eq $bad)
  }
} | Format-Table -AutoSize

'--- Indicators on Windows'
$keys = "$HOME\.ssh\authorized_keys", 'C:\ProgramData\ssh\administrators_authorized_keys' | Where-Object { Test-Path $_ }
[pscustomobject]@{
  'svc-telemetry key' = [bool]($keys -and (Select-String -Path $keys -Pattern 'svc-telemetry' -Quiet))
  'SysMon task'       = [bool](Get-ScheduledTask -TaskName 'SysMon' -ErrorAction SilentlyContinue)
  'Startup sysmon.cmd'= Test-Path "$env:APPDATA\Microsoft\Windows\Start Menu\Programs\Startup\sysmon.cmd"
  '.config\smt.cmd'   = Test-Path "$HOME\.config\smt.cmd"
  '.config\smtk'      = Test-Path "$HOME\.config\smtk"
  'TEMP\.stk_*'       = [bool](Get-ChildItem $env:TEMP -Filter '.stk_*' -Force -ErrorAction SilentlyContinue)
} | Format-List

ハッシュを手元の 2.1.312 のものに差し替えると Match は True に、%TEMP% に空ファイル .stk_selftest00 を置くと TEMP\.stk_* は True になり、検出が働くことも確かめました。


VS Code の 2.1.312 は、改ざん版と違った

VS Code から入れた 2.1.312 の extension.js は 1195816b… で、告知の改ざん版 ecb58cb2… とは違いました。改ざん版は本物と同じ番号なので、版番号だけでは見分けられません。 入れたエディタとハッシュで見ます。


Cursor は開いていなかったので、上がっていなかった

Cursor の拡張は 2.0.1 のままで、最後の起動ログは2025年10月3日でした。自動更新は既定のままで、開いていないので上がる機会が無かったと見ています。Cursor を毎日開く人は、その時間帯に上がっていないかを確かめてください。


2.1.313 は、公式の配布元に無い版番号だった

npm(Claude Code 本体)            2.1.312(10/27)→ 2.1.314(10/30)
VS Code マーケットプレイス          2.1.312(10/27)→ 2.1.314(10/30)  発行元 anthropic(確認済み)
Open VSX                          2.1.312 → 2.1.314 → 2.1.316
(2026-11-02 時点。日付は UTC)

手元に 2.1.313 があったら、告知の手順に進んでください。


当てはまったら

Cursor の告知の手順(Windows は remediate-windows.ps1)に従います。告知は「拡張を消すだけでは足りないかもしれない」とし、認証情報や PC の作り直しも勧めています。


言えないこと

  • 確かめたのは Windows の1台だけです(管理者ではない PowerShell。administrators_authorized_keys はこの PC に無い)
  • ハッシュが違うことは、告知の改ざん版と同じファイルではない、というだけです
  • 改ざん版は入手していないので、改ざん版が入った PC での検出は試していません
  • 痕跡の一覧は告知(10/30 更新)のもので、増えることがあります
  • VS Code マーケットプレイスと Open VSX が安全だったとは言えません(告知の範囲外)

関連記事


JQITのエンジニアの95%以上は未経験からの採用です。
よければコーポレートサイトにも遊びに来てください。

▶ コーポレートサイト

エンジニア採用も行っています。もしご興味あれば覗いてみてください。

▶ 採用サイト

3
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?