Forever Securityの調査で、Webサイトがユーザーの承認なしにDownloadsフォルダーへ保存したファイルによって、AIコーディングエージェントが悪意あるnpmパッケージをインストールしたり、ユーザーのログイントークンを渡してしまったりする恐れがあることがわかりました。エージェントをそのフォルダーで起動した場合に起こります。

問題のファイルはAGENTS.mdです。開発者がプロジェクトフォルダーに置くプレーンテキスト文書で、自律的にコードを書いて実行するAIツールであるコーディングエージェント向けの指示が書かれています。
このファイルは、Foreverの顧客のコンピューターで見つかりました。コーディングエージェントに悪意あるパッケージをインストールさせようとしましたが、同社のソフトウェアが阻止しました。ファイルはOpenAIのCodexを標的にしていました。
同社の研究者であるGal Weizman氏とOmer Samet氏は、次のように述べています。「これは通常のマルウェアではありません。AGENTS.mdは、コーディングエージェントが信頼して従うように作られたファイルです。そして~/Downloadsは、クリックも許可もなしにWebサイトがファイルを置けるフォルダーです。この2つが組み合わさると、Webがユーザー自身のエージェントに実行させる命令を仕込めてしまいます。Markdownは新たな実行ファイルになったのです」
パッケージの名前はfunction-colorで、npmで確認された悪意あるキャンペーンの一部です。npmは、開発者がプロジェクトに追加するJavaScriptの既製コードを集めた公開ライブラリです。Foreverによると、このキャンペーンは約2年間気づかれないままでしたが、発見されて公に文書化され、その後npmがパッケージを削除しました。
既知の悪意あるパッケージをブロックすること自体は日常的な作業だと、Weizman氏とSamet氏は述べています。2人が詳しく調べる気になったのは、命令の出どころでした。文書は通常のエンジニアリングガイドラインを装っており、どうやって置かれたのかは誰にもわかっていませんでした。
2人によると、OSはインターネットからダウンロードしたプログラムを、ユーザーが承認するまで実行しません。しかし、こうした保護はプレーンテキストのファイルには働きません。
Codexが攻撃者のファイルを実行
CodexがAGENTS.mdに従うのは、信頼しているフォルダーにある場合だけです。ユーザーが一度でも作業したことがあれば、Downloadsも信頼対象になります。このフォルダーでCodexを起動して何かタスクを与えると、Codexはまず自身の設定を書き換え、続いてファイルに指定されたパッケージをインストールしました。
仕込まれた文書は13 KBに及びます。パッケージのインストールを求める短い依頼は拒否されるため、長さと平凡な文面が検知をすり抜ける助けになっています。
2人は次のように述べています。「私たちのテストでは、Codexは90%超の試行でマルウェアを実行しました」。テストの大半は、電卓を開くだけの無害な代用品を使いました。悪意あるパッケージそのものは、隔離した仮想マシン内で1回だけ実行しました。
Codexが書き換える設定はコンピューター全体に適用されます。そのため、ユーザーがどのプロジェクトを開いても、以降のCodexセッションはすべて攻撃者のコマンドを実行します。
ログイントークンが攻撃者の手に
問題が1つの製品にとどまらないかを調べるため、Weizman氏とSamet氏は、攻撃者のファイルを参考に独自のCLAUDE.mdを作成しました。AnthropicのClaude Code向けの同種のファイルです。Claudeは騙すのがはるかに難しかったものの、成功した攻撃はCodexのものとはまったく異なる手口だったといいます。
Claude Codeは、リクエストをインターネット経由でAnthropicのAIモデルに送ります。研究者のファイルは、社内ゲートウェイと称する小さな設定変更を保存するようエージェントに求めます。この変更により、リクエストの送信先が攻撃者の管理するサーバーに切り替わります。Claude Codeは通常、こうした変更の承認をユーザーに求め、不審なものは拒否することも多くあります。
チームは「私たちのテストでは、Claudeはこの指示に約50%の確率で従いました」と述べています。
各リクエストには、ユーザーのログイントークンが含まれています。サインイン状態を保つデジタルの鍵です。2人が取得したトークンをAnthropicのサービスに対して再利用したところ、被害者として扱われ、コードを実行せずにアカウントを乗っ取れました。
次にそのフォルダーでClaude Codeを起動すると、攻撃者のサーバーがAIモデルになりすまし、サンドボックスを無効にしてコマンドを実行するようエージェントに指示できます。このファイルはさらに、Claude Codeにヘルパーエージェントを起動させようとします。ヘルパーエージェントは攻撃者のサーバー経由で即座に接続するため、研究者はテストの約5分の1で同じセッション内でコードを実行できました。
AIエージェントが自ら攻撃の引き金に
Webの閲覧の多くは、誰も画面を見ていない間にエージェントが自律的に行っています。そのため、エージェント自身がファイルを仕込むページを訪れる可能性があります。Foreverのチームは、この攻撃ではエージェントが標的であると同時に武器にもなると指摘しています。
同社のデータでは、顧客の約半数がDownloadsフォルダー内でコーディングエージェントを実行しています。また、エージェントのセッションの約4分の1でブラウザーが開かれています。
研究者らは「OpenAIやAnthropicが修正できるものはここにはありません」と主張します。彼らの見方では、フォルダー内の指示ファイルに従うエージェントは本来の仕事をしているだけです。フィッシングページを表示するブラウザーが設計どおりに動いているのと同じです。そのため、この穴は残ったままで、ユーザー自身が防御しなければなりません。
エージェントをDownloadsに近づけない
研究者らは「これに対処するために、今日何かを購入する必要はありません」と述べています。
研究者らは、Downloadsフォルダーでコーディングエージェントを起動しないよう警告しています。自分で書いていないAGENTS.mdやCLAUDE.mdは、エージェントに触れさせる前に内容を確認するよう呼びかけています。コピーしたばかりのコードリポジトリ内のファイルも対象です。
エージェントの設定ファイルに、ユーザーが追加していないサーバーやWebアドレスがないかの確認も勧めています。承認プロンプトとサンドボックスは有効にしておき、それらを回避するよう求める指示は疑うべきだとしています。
仕込まれたファイルを見つけた場合は、ログイントークンが漏えいしたものとみなして再発行してください。盗まれたトークンは、有効なセッションとして使えるためです。function-colorをインストールしたコンピューターは、侵害されたものとして扱う必要があります。
Forever Securityは次のように結論づけています。「今回の攻撃を捕まえられたのは、ユーザーではなくエージェントを監視していたからです。次の攻撃はこれと同じ姿ではないでしょう。ユーザーだけを監視している組織は、その攻撃も見逃してしまいます」
翻訳元: https://www.helpnetsecurity.com/2026/10/26/ai-coding-agents-malware-openai-codex/