💬なんか危なそうだったので、自分のMacでも確認して対処完了。手順をまとめておきます。所感続き↓
セキュリティ企業のForever Securityが、ダウンロードフォルダに置かれたテキストファイル1つで、AIコーディングエージェントの「Codex」と「Claude Code」が攻撃者の指示に従ってしまう、というレポートを公開。
きっかけは、実際の顧客のMacで起きた事例。
ダウンロードフォルダにあったAGENTS.mdというファイルが、エージェントにマルウェアのインストールを指示していました。
AIエージェントで作業をするときに、ローカルのダウンロードフォルダを作業フォルダとして使ったことがある場合には、要注意。以下、確認方法と対処方法のまとめです。

KEY POINTS — ソース:① via Forever Security(2026年10月22日付)
- 顧客のMacで、エージェントによる悪性npmパッケージ「function-color」のインストールを阻止
- 指示の出どころは、~/Downloads(ダウンロードフォルダ)にあったAGENTS.md
- Webサイトは、クリックや承認なしでダウンロードフォルダにファイルを保存できる
- Codexでの再現テストでは、90%超の試行でマルウェアを実行
- Claude Codeでの再現テストでは、約半分の試行でAPIの通信先を書き換え。ログイン用のOAuthトークンが漏れる
- OpenAI・Anthropicが修正できる種類の問題ではない、とForever Securityは説明
発端:顧客のMacで止めた「function-color」のインストール
Forever Securityの製品が、作業中のコーディングエージェントを止めました。エージェントがインストールしようとしていたのは、function-colorというnpmパッケージ。約2年間見つからずに出回っていた、マルウェアを含むパッケージです。現在はnpmから削除されています。
指示を出していたのは、開発者本人ではなく、ダウンロードフォルダにあったAGENTS.mdでした。
AGENTS.mdは、AIエージェント向けに作業の手順やルールを書いておくテキストファイル。Codexは作業を始めるときにこのファイルを読み、書かれた手順に従います。Claude Codeでは、CLAUDE.mdが同じ役割のファイルです。
問題のAGENTS.mdは、通常の開発メモに見えるように書かれていました。Forever Securityは攻撃を実行前に止めていますが、ファイル自体がどうやってダウンロードフォルダに置かれたのかは判明していません。
Webページは、クリックなしでダウンロードフォルダにファイルを置ける
Forever Securityによれば、考えられる経路は、2つの動作の組み合わせです。
- Webサイトは、ユーザーのクリックや承認なしで、ダウンロードフォルダにファイルを保存できる。ファイル名も中身もサイト側が決められる
- エージェントは、起動したフォルダにある指示ファイルを信じて従う
つまり、ダウンロードフォルダでエージェントを起動すると、Webページが置いた指示ファイルを読んでしまいます。ファイル自体は、エージェントが読むまで何もしません。
Forever Securityによると、同社の顧客の約半数が、ダウンロードフォルダの中でコーディングエージェントを動かしていました。ZIPを解凍して、そのまま中で作業を始める、といった使い方です。
再現テスト:Codexは90%超、Claude Codeは約半分
上記の仮説を元に以下の検証が行われました。
Codex:全セッションに効く設定を書き換え
Forever Securityは、実際に見つかったAGENTS.mdを隔離した仮想マシンで動かしました。結果、Codexは90%を超える試行でマルウェアを実行。
エージェントは、Codex全体の設定ファイル ~/.codex/config.toml に、攻撃者のサーバーを登録しました。この設定はMac上のすべてのCodexセッションで有効です。ダウンロードフォルダ以外で作業しても、攻撃者のサーバーが読み込まれる状態になります。
さらにエージェントは、承認とサンドボックスを無効にするオプション(--dangerously-bypass-approvals-and-sandbox)を自分で付けて、インストールを実行しました。AGENTS.mdに「このインストールには必要」と書かれていたためです。
なお、CodexがAGENTS.mdに従うのは、信頼済みのフォルダだけ。しかしながら、過去に一度でもそこで作業したことがあれば、ダウンロードフォルダも信頼済みになっている、とForever Securityは説明しています。
Claude Code:APIの通信先を書き換え、ログイン情報が漏れる
Claude Codeでのテストでは、Forever Securityが作ったCLAUDE.mdを使用。社内ゲートウェイの設定手順に見せかけた内容です。
このCLAUDE.mdは、プロジェクトの設定ファイル .claude/settings.json に ANTHROPIC_BASE_URL を書き込ませます。これはClaude CodeがAPIに接続する先のアドレスです。書き込みが成功したのは約半分の試行でした。
書き換えが成功すると、Claude Codeの通信は攻撃者のサーバーを通ります。そこでOAuthトークン(ログイン用の認証情報)が抜き取られます。Forever Securityは、抜き取ったトークンで本物のAPIに接続し、被害者のアカウントとして利用できることを確認しています。
次のセッションでは、攻撃者のサーバーがサンドボックスを無効にしたコマンドを送り、Claude Codeがそれを実行しました。同じセッション内での実行も、約5回に1回成功しています。
一方で、Claude Codeのサブエージェントが CLAUDE.md を攻撃だと見抜いたケースもありました。セキュリティ関連のメモが多いフォルダでは、毎回失敗しています。
自分のMacが安全かどうかを確認する方法
Forever Securityの推奨をもとに、Macでの確認手順をまとめました。ターミナルに貼り付けて実行します。どれも中身を表示するだけで、ファイルは変更しません。
1. 知らない指示ファイルがないか
ダウンロードフォルダ(解凍したフォルダを含む)に、自分で作っていないAGENTS.md・CLAUDE.mdがないか探します。
find ~/Downloads -iname "AGENTS.md" -o -iname "CLAUDE.md"
何も表示されなければ問題ありません。見つかった場合は、下の「見つかった場合の対処」に進みます。
2. Claude Codeの設定が書き換えられていないか
まず、全体の設定ファイルを表示します。
cat ~/.claude/settings.json
次に、各プロジェクトの設定ファイルから ANTHROPIC_BASE_URL を探します。
find ~ -path ~/Library -prune -o -path "*/.claude/settings*.json" -print -exec grep -H "ANTHROPIC_BASE_URL" {} \; 2>/dev/null
ファイルのパスだけが表示されれば問題ありません。ANTHROPIC_BASE_URL を含む行が表示され、自分で設定した覚えがない場合は、書き換えられています。下の「見つかった場合の対処」に進みます。
3. Codexの設定が書き換えられていないか(Codexユーザーのみ)
cat ~/.codex/config.toml
[mcp_servers.〜] の項目に、登録した覚えのないサーバーがないか確認します。Forever Securityの再現テストでは、project-tools という名前で登録されていました。覚えのないサーバーがあれば、下の「見つかった場合の対処」に進みます。
4. function-colorが入っていないか
npm ls -g function-color
何も表示されなければ問題ありません。function-colorが表示された場合は、下の「見つかった場合の対処」の4に進みます。
見つかった場合の対処:指示ファイルを消しても、書き換えは残る
知らない指示ファイルが見つかったら削除します。しかし、削除しただけでは問題は解決しません。
指示ファイルは、エージェントに設定を書き換えさせるための入り口であり、エージェントがすでにファイルを読んでいた場合、書き換えられた設定自体はファイルを消しても残ります。
Codexの設定ファイルは全セッションに効くので、別のフォルダで作業しても、攻撃者のサーバーが読み込まれ続けます。Claude Codeでは、盗まれたトークンが使える状態のまま残ります。本当に確認すべきなのは、ファイルの有無より、設定が書き換えられていないかです。
1. エージェントを終了して、指示ファイルを削除する
そのフォルダで動いているCodex・Claude Codeのセッションを終了します。
指示ファイルは、中身を読んでから削除します。書かれている設定ファイル名やURLが、次の確認の手がかりになります。
2. 書き換えられた設定を元に戻す
上の確認手順2・3をもう一度実行し、覚えのない設定を削除します。
- Claude Code:
.claude/settings.jsonから、覚えのないANTHROPIC_BASE_URLの行を削除する。プロキシなど、ほかの接続先の設定も確認する - Codex:
~/.codex/config.tomlから、覚えのない[mcp_servers.〜]の項目を削除する。chatgpt_base_urlが変わっていないかも確認する
3. ログイン情報を作り直す
設定の書き換えが見つかった場合は、トークンがすでに盗まれている前提で対処します。盗まれたトークンは、そのままログイン状態として使えるためです。
- Claude Code:
/logoutでログアウトし、/loginで再ログインする - Codex:
codex logoutでログアウトし、再ログインする
設定を元に戻しても、ログイン情報を作り直すまでは、盗まれたトークンが使える状態のままです。
4. function-colorが入っていた場合
Forever Securityは、そのMacを侵害済みとして扱うよう求めています。設定を戻すだけでは足りません。Macに保存しているパスワードやAPIキーなど、ほかのログイン情報も変更の対象になります。
Forever Securityが挙げる予防策
- ダウンロードフォルダでエージェントを起動しない
- 自分で書いていないAGENTS.md・CLAUDE.mdは、エージェントに読ませる前に中身を確認する
- 承認とサンドボックスは有効のままにする。承認を回避するよう指示する内容があれば疑う
Forever Securityは「OpenAIやAnthropicが修正するものはない」と書いています。フォルダの指示ファイルに従うのは、エージェントが設計どおりに動いているだけ、という理由です。アップデートを待っても解決しないので、使う側の習慣で防ぐことになります。

💬 軽めインプレ所感
僕も読んですぐに自分のMacを確認しました。とりあえず、知らないCLAUDE.mdも、ANTHROPIC_BASE_URLの書き換えもなし。ひと安心。
怖いのは、ファイルを置くだけなら、Webページを開くだけでできてしまうところですね。ダウンロードフォルダって、毎日なにかしら勝手に増えていく場所なので、、、。
顧客の約半数がダウンロードフォルダでエージェントを動かしていた、という数字もリアル。ZIPを解凍して、そのフォルダでそのままClaude Codeを起動する、というのは普通にやりがちです。
ちなみに、本文の「侵害済みとして扱う」。具体的に何をするのかはレポートには書かれていません。一般的なセキュリティ対応だと、以下になります。
- Wi-Fiをオフにして、Macをネットワークから切り離す
- iPhoneなど別の端末から、Apple Account・Google・GitHubなど、そのMacでログインしていたサービスのパスワードを変更。「すべてのデバイスからログアウト」も実行する
- キーチェーンやブラウザに保存したパスワード、APIキー、SSH鍵は、発行元で無効にして作り直す
- 書類や写真などのデータだけバックアップして、macOSを消去・再インストール。Time Machineで丸ごと戻すと、マルウェアごと戻る可能性あり
パスワードの変更を別の端末でやるのは、感染したMacで入力すると、新しいパスワードまで盗まれるかもしれないから。
そもそも、function-colorが具体的に何を盗むのかも、Forever Securityのレポートには書かれていません。わからない以上、最悪を想定して全部やるしかありません、、、。面倒だけど
ちなみに、ブラウザの保存先をデスクトップにしている人は、デスクトップも同じ扱いになる可能性大、、、。気をつけましょう、、。






