11月13日、Cursorは10月29日のセキュリティインシデントに関する調査結果を公式ブログで公表した。攻撃の起点は、サードパーティベンダーのFireworksから漏洩したアクセスキーだった。攻撃者はこのキーを使い、読み取り専用ストレージバケットからコーディングエージェントのトレースをコピーし、改ざんしたClaude Code拡張機能をCursor拡張機能マーケットプレイスのキャッシュに仕込んだ。汚染されたバージョンをインストールした可能性があるユーザーは最大5000人。大多数のユーザーに影響はなく、Cursorは影響を受けたユーザー一人ひとりに連絡済みだ。
攻撃はどう起きたのか
調査で判明した経緯はおおむね次の通りだ。まずFireworks:攻撃者はCursorが同社に発行したキーを入手し、読み取り専用ストレージバケットから2025年を中心とするコーディングエージェントのトレースをコピーした。未加工の記録の一部に認証情報が含まれ、0.01%未満のユーザーのAPI認証情報が漏洩した。攻撃者はこれらの認証情報を使い、Cursorが利用する一部のSaaSツールに入り込み、アーカイブされた非本番環境のソースコードリポジトリ、カスタマーサポートのデータやメールのやり取り、製品利用指標、ユーザーがサポートチームに送った認証情報にアクセスした。Cursorの監視システムが不正な活動を検知した後、同社はベンダーのキーを無効化し、認証情報のローテーションとさらなる不正アクセスの追跡を開始した。
第2の段階は悪意ある拡張機能だ。10月29日、攻撃者は盗んだ認証情報を使い、改ざんしたClaude Code拡張機能のバージョン2.1.312と2.1.313をCursor拡張機能マーケットプレイスのキャッシュに配置した。削除されるまで約11時間公開されていた。Anthropicがこのコピーを公開したわけではなく、マーケットプレイスのソースであるOpen VSXも感染していない。特定のキャッシュバージョンを要求した最大5000人のユーザーが受け取った可能性がある。10月30日、Cursorはセキュリティ通知と確認スクリプトを公開し、影響を受けたユーザーとチーム管理者への通知を開始した。最後の攻撃活動は11月1日に確認され、ブロックされた。Cursorはインシデントは封じ込められたと考えている。
確認が必要なユーザーは誰か
通知を受け取っていないユーザーのデータは漏洩したトレースに含まれておらず、追加の対応は不要だ。プライバシーモードを使っていないユーザーのコーディングエージェントのトレースも、漏洩したのは0.05%未満にとどまる。ただし10月29日にCursor拡張機能マーケットプレイスからClaude Code拡張機能の2.1.312または2.1.313をインストール・更新したユーザーは、公式セキュリティ通知の手順に従って確認する必要がある。拡張機能のアンインストールだけでは不十分だ。プライバシーモードのユーザーのプロンプトとコード、本番システム、Cursorアプリと公式アップデート、顧客のコードリポジトリはいずれも影響を受けていない。Cursorは最近慌ただしい。OpenAIのモデルは11月12日にCursorから撤退した。
Cursorはすべての推論トラフィックをFireworksから移行し、関連キーを無効化、すべての内部認証情報をローテーションし、拡張機能マーケットプレイスを再構築して外部のフォレンジック専門家を招いた。この一件はすべての開発者への教訓でもある。拡張機能マーケットプレイスのキャッシュ層自体が攻撃対象になり得る。拡張機能を入れる前に、公開元が公式かどうかを確認しよう。