AIコーディングツールの内蔵ブラウザの脆弱性「EMBRACE」|Cursor・Copilot・Codex・VS Code・Claude Desktopの対応状況と、手元でできる点検
Forever Securityが、AIコーディングツール5製品の内蔵ブラウザの問題を公開した
セキュリティ企業のForever Securityは2026年10月29日、AIコーディングツールに組み込まれたブラウザの問題をまとめた調査「EMBRACE」を公開しました。対象はCursor、GitHub Copilot、OpenAIのCodex、MicrosoftのVS Code、AnthropicのClaude Desktopの5製品で、仕組みの詳細は技術解説の記事にあります。
これらのツールには、作ったWebページのプレビューや、AIがページを読んで操作するための小さなブラウザが入っています。研究者によると、その内蔵ブラウザでは、通常のブラウザなら許さない操作がページに許されていました。悪意のあるページやHTMLファイルを開くと、Cursorでは1回の承認で端末のコマンドが実行され、Codex、VS Code、Claude Desktopではパソコン内のファイルを読まれる状態でした。
この記事では、研究者が報告した3種類の問題と製品ごとの対応状況を整理します。そのうえで、通常のブラウザがローカルのHTMLをどう制限しているかを手元のChromeで確かめ、AIコーディングツールを使う開発者が今日できる点検の手順をまとめます。
報告の要点
内蔵ブラウザで開いたページが、アプリの機能やパソコン内のファイルに届いた
Cursor
10月1日に修正
ページの内容を受けたAIが、1回の承認でコマンドを実行した問題。
GitHub Copilot
1.1.29で修正
Copilotのブラウザのプレビューで、ページが偽のアドレスを表示させた問題。10月13日に修正。
Codex・VS Code
10月29日時点で未修正
ローカルのHTMLから、ほかのファイルを読めた問題。11月8日時点でも、各社のリリースノートに修正の記述はない。
Claude Desktop
別の研究者の報告を受理
Forever Securityの報告は不受理、Noma Securityの報告は受理。研究者の記事に修正日の記載なし。
出典: Forever Security「EMBRACE」(2026年10月29日)。状況は2026年10月29日時点で研究者が記したもの。2026年11月8日に筆者が確かめた時点でも研究者の記事に追記はなく、OpenAIのCodexの変更履歴とVS Code 1.145のリリースノートに内蔵ブラウザの修正の記述はない
ページがアプリやファイルに届いた経路は3種類あった
通常のブラウザは、Webページを次の3つの決まりで閉じ込めています。ページはパソコンのコマンドを動かせない、ローカルのファイルはほかのファイルを読めない、アドレス欄を変えられるのはブラウザだけ、の3つです。研究者は、AIがプレビューを見たりページを操作したりできるように各社が内蔵ブラウザへ機能を足した結果、5製品すべてでどれかの決まりが崩れていたと報告しています。
崩れていた決まり
製品ごとに、ページが越えた範囲が違う
Cursor
ページからAIへ指示が届く
内蔵ブラウザのページが、AIへの入力欄に内容を送れた。研究者の実験では、サンドボックスに止められたAIがサンドボックスを外して再試行し、Enterキー1回の承認でコマンドが動いて計算機アプリが起動した。成功するかはAIモデルの反応にも左右される。
GitHub Copilot
ページが自分のアドレスを偽れる
Copilotのブラウザのプレビューで、ページが報告したアドレスをそのまま表示した。研究者は、対象の製品を版番号(1.1.27、1.1.29)だけで示している。攻撃者のサイトにある偽のログイン画面が、アドレス欄に「github.com/login」と表示され、AIにもタブの場所として伝えられた。
Codex・VS Code・Claude Desktop
ローカルのHTMLがほかのファイルを読める
プロジェクト内のHTMLを開くと、そのページがディスク上のファイルを読めた。研究者の実験機では、SSHの鍵、.envファイル、npmのトークンなどが集められた。
Forever Securityの技術解説をもとに筆者が要約
3つ目のファイル読み出しでは、VS CodeとClaude Desktopはページが読める範囲をプロジェクトのフォルダに限っていました。ただ、その確認は最初に開いたページにしか効かず、ページが裏で動かす処理(Web Worker)からは範囲の外を読めたと研究者は説明しています。Codexには、その範囲の制限自体がなかったとしています。
攻撃の入り口として研究者が示したのは、決算資料などに見せかけたプロジェクトです。READMEに「この手順でセットアップして」と書いておくと、AIがプロジェクト内のHTMLファイルへのリンクを差し出し、開発者がそれを1回クリックすると読み出しが始まる、という流れでした。
CursorとCopilotは修正済み、CodexとVS Codeは10月29日時点で未修正
研究者の記事には、各社に報告した日と対応が書かれています。修正されたのはCursorとGitHub Copilotの2製品です。CodexとVS Codeは、記事を公開した10月29日の時点で修正されていません。2026年11月8日に筆者が確かめた時点でも、研究者の記事に追記はありません。OpenAIの変更履歴(11月6日公開のCodex CLI 0.167.0まで。内蔵ブラウザがあるデスクトップアプリの版の項目は10月8日の26.1007が最後)と、VS Code 1.145(11月4日公開)のリリースノートにも、この問題の修正の記述はありません。
2026年の経緯
各社への報告と対応
- 7月23日・24日 Claude Desktop
Forever Securityの報告は、Anthropicが「Workspace Trust(プロジェクトを信頼するかの確認)の範囲内」として受け付けなかった。翌日、別の研究チームNoma Securityの報告が、問題として受理された。 - 7月27日 Codex
OpenAIへ報告。研究者によると返答はなく、10月29日の時点で未修正。 - 9月10日 Cursor・VS Code
CursorとMicrosoftへ報告。MicrosoftはWorkspace Trustの範囲内として受け付けず、VS Codeは10月29日の時点で未修正。 - 10月1日 Cursor
Cursorが修正。研究者への返答はなかった。 - 10月13日 GitHub Copilot
研究者が9月26日にCopilotの1.1.27で確認した問題を、報告前にGitHubが1.1.29で修正。
出典: Forever Security「EMBRACE」の技術解説(2026年10月29日)。各社の対応は研究者の記述による。2026年11月8日時点で、研究者の記事に追記はない
Claude Desktopについて、Forever Securityの記事には修正日の記載がありません。これとは別に、Noma Securityは、Claude DesktopのClaude Code(Claude Code Desktop)のプレビュー画面で、大きなHTMLファイルからローカルのファイルを読めた問題「SneakPeek」を公表しています。最初の対策をWeb Workerで回避できたこと、その後の修正で解決したことを、セキュリティ専門の報道サイトCSO Onlineが10月14日に伝えました。7月24日に受理された報告がSneakPeekと同じものかは、Forever Securityの記事には書かれていません。
MicrosoftとAnthropicが当初に挙げたWorkspace Trustは、フォルダを開くときに「このフォルダの作者を信頼するか」を確認する仕組みです。信頼したフォルダの中身は開発者が受け入れたもの、という考え方です。研究者は、信頼しないと選ぶとツールがほとんど使えないため、開発者は「信頼する」を押してしまうと反論しています。
通常のChromeは、ローカルのHTMLから隣のファイルを読ませない
問題の中心にある「ローカルのファイルはほかのファイルを読めない」という決まりを、手元のChromeで確かめました。作業用のフォルダにダミーの文字列だけを入れたテキストファイルを置き、同じフォルダと1つ外のフォルダのファイルを読み込もうとするHTMLを、ダブルクリックで開くのと同じ形(file://)で開いています。
手元での確認(Chrome 156、macOS)
同じHTMLでも、ブラウザの設定でファイルを読めるかが変わる
通常のChrome
読み込みは2件とも失敗
- ページの出どころ(origin):
null - 同じフォルダのファイル: 失敗(TypeError)
- 1つ外のフォルダのファイル: 失敗(TypeError)
ローカルファイルの制限を外したChrome
2件ともダミーの中身を取得
- ページの出どころ(origin):
file:// - 同じフォルダのファイル: 読めた
- 1つ外のフォルダのファイル: 読めた
2026年10月30日に筆者が確認。「制限を外したChrome」は起動オプション --allow-file-access-from-files を付けた場合(確認のためだけに使い、日常の利用では付けない)。読み込んだのはダミーの文字列だけを入れたファイル
通常のChromeは、ローカルのHTMLに「出どころなし(null)」という扱いを与え、ほかのファイルへのアクセスを止めます。研究者によると、問題になったCodex、VS Code、Claude Desktopの内蔵ブラウザは、ローカルのページを、制限を外したChromeと同じ file:// の出どころとして扱っていました。
この確認から分かるのは、ローカルのHTMLを開く場所で結果が変わることです。出どころの分からないHTMLを確かめたいときは、内蔵ブラウザで開く前に中身をテキストとして読むのが確実です。通常のChromeで開く場合も、ページのJavaScriptは動きますが、今回の確認ではほかのローカルファイルの読み出しは止められました。
信頼済みのプロジェクトとHTMLファイルを点検する手順
CodexとVS Codeの修正が出るまでの間にできるのは、ツールに「信頼する」と答えたプロジェクトを洗い出し、その中に入っているHTMLファイルを確かめることです。セキュリティ専門の報道サイトHelp Net Securityの記事でも、研究者のGal Weizman氏が、CodexとVS Codeについて、信頼済みのプロジェクトの一覧を設定ファイルから取り出し、その中のHTMLを点検するよう勧めています。
点検の流れ
一覧を出し、HTMLを探し、出どころを確かめる
- 1. 信頼済みのプロジェクトを一覧にする Codexは
~/.codex/config.tomlの[projects."フォルダのパス"]にtrust_level = "trusted"を記録している。VS Codeはコマンドパレットの「Workspaces: Manage Workspace Trust」で信頼済みのフォルダを確認できる。 - 2. 見覚えのないプロジェクトの信頼を外す 他人から受け取ったリポジトリや、試しに取ってきたサンプルで、今は使っていないものを一覧から外す。
- 3. Workerやfile://の読み込みを含むファイルを探す 研究者が示した手口に使われる書き方(
new Worker(、createObjectURL(、file://、.DS_Store)を含むHTMLと、HTMLから読み込まれる.jsファイルを検索する。 - 4. 見つかったファイルの出どころを確かめる 自分で作ったか、ライブラリに同梱されたものかを確かめる。出どころの分からないファイルは、内蔵ブラウザで開く前にテキストとして中身を読む。
手順1と3は、次のコマンドで実行できます。1つ目はCodexの信頼済みフォルダを表示し、2つ目は指定したフォルダの中から該当するHTMLと.jsファイルの場所を表示します。1つ目は、[projects."…"] の次の行に trust_level が書かれている形を前提にしています。どちらもファイルを読むだけで、設定は変えません。
# Codexで信頼済みにしたフォルダの一覧
grep -B1 'trust_level = "trusted"' ~/.codex/config.toml \
| grep '^\[projects' | sed -E 's/^\[projects\."(.*)"\]$/\1/'
# 指定したフォルダの中で、Workerやfile://の読み込みを含むHTMLと.jsを探す
grep -rlE --include='*.html' --include='*.htm' --include='*.js' \
--exclude-dir=node_modules --exclude-dir=.git \
'new Worker\(|createObjectURL\(|file://|\.DS_Store' ~/調べたいフォルダ
筆者のMacで試すと、Codexの信頼済みフォルダは69件あり、そのうち62件が今もディスクに残っていました。この62件に2つ目のコマンドをかけると194件のファイルが見つかりました。そのうち144件は記事作業用のフォルダにあり、検証のために取ってきたリポジトリや自分で作ったプレビューでした。残りも、ライブラリに同梱されたテスト用ページやAPIの説明書などが中心です。検索語は普通のWebアプリでも使われるので、見つかったファイルは手順4で1件ずつ出どころを確かめます。また、検索語を使わない書き方もあるので、この検索は点検の手がかりの一つとして使います。
Codexの信頼を外すときは、config.toml から該当するフォルダの [projects."…"] と trust_level の2行を消します。編集の前にファイルを複製しておくと、元に戻せます。
AIが差し出したHTMLへのリンクは、出どころを見てから開く
研究者が示した手口では、開発者がクリックしたリンクはAI自身が差し出したものでした。AIを信頼していると、そのリンクも安全なものとして押してしまいがちです。AIコーディングツールを使い続けるなら、次の3点を習慣にしておくと、同じ種類の問題にあたる場面を減らせます。
リンクを開く前
AIが示した .html へのリンクは、自分が作ったファイルかを確かめてから開く。他人のリポジトリのHTMLは、まずテキストとして読む。
リポジトリを開く前
初めて取ってきたリポジトリは、READMEのセットアップ手順をAIに任せる前に、自分で中身を読む。信頼の確認には、中身を見てから答える。
アップデート
CursorとGitHub Copilot、Claude Desktopは最新版へ上げる。CodexとVS Codeは、内蔵ブラウザの修正が出たかを各社の更新情報で確かめる。Codexはデスクトップアプリ(ChatGPTデスクトップアプリに統合)の変更履歴、VS Codeはリリースノートを見る(2026年11月8日時点では、どちらにも記述がない)。
内蔵ブラウザは、AIにWebページを見せて作業を任せるための便利な機能です。ページが届く範囲が通常のブラウザより広い場合があると知っておくと、HTMLを開く場所を自分で選べます。












