Hackers Use Fake Gemini npm Package to Steal Tokens From Claude, Cursor, and Other AI Tools
2026/04/07 CyberSecurityNews — AI コーディング・ツールを利用するソフトウェア開発者を標的とする、新たなサプライチェーン攻撃が確認された。2026年3月20日の時点で、この攻撃者は gemini-check アカウントを用いて、悪意の npm パッケージ “gemini-ai-checker” を公開した。このパッケージは、Google Gemini AI トークン検証用のシンプルなユーティリティを装い、信頼性が高く見える整然とした構造を持っている。 しかし、その内部に組み込まれたマルウェアにより、AI コーディング環境から認証情報/ファイル/トークンなどが窃取されていく。

インストール後に、このパッケージは “server-check-genimi.vercel.app” 上の Vercel でホストされるステージング・サーバに密かに接続し、JavaScript ペイロードをダウンロードして被害端末上で直接実行する。
Cyber and Ramen のアナリストによると、このペイロードを解析したところ、Contagious Interview キャンペーンに関連する JavaScript バックドア OtterCookie に到達したという。この攻撃は、北朝鮮由来の脅威アクターによるものとされる。
このバリアントは、Microsoft が 2026年3月に報告したものと極めて類似しており、2025年10月以降にも活動していると評価されている。それらの攻撃者は、2 つのパッケージ express-flowlimit/chai-extensions-extras も公開しており、いずれも同一の Vercel インフラを共有している。この記事の公開時点で、これら 3 つのパッケージは、合計で 500 回を超えるダウンロード数を記録している。
2026年4月1日に “gemini-ai-checker” は削除されたが、他の 2 つのパッケージは依然として公開されており、ダウンロードが継続している。
このキャンペーンの特徴は、AI 開発ツールを明確に標的としている点である。このマルウェアは、ブラウザの認証情報や暗号資産ウォレットを窃取するが、それに加えて、Cursor/Claude/Windsurf/PearAI/Gemini CLI/Eigent AI のディレクトリへアクセスするよう設計されており、API キー/会話ログ/ソースコードの流出リスクを高めている。
感染メカニズム
感染プロセスの解析により、検知回避を前提として精密に設計されていることが判明した。”gemini-ai-checker” は 44 個のファイルで構成され、271kB のサイズを持ち、4 つの依存関係を含んでいる。一般的なトークン・チェッカーと比べて大規模であるが、SECURITY Markdown ファイルを取り込むといった、正規プロジェクトを模倣する構造を採用している。
パッケージ内部の “libconfig.js” により、C2 コンフィグ を分割して保持する構造となっている。ステージング・ドメイン/認証トークン/パス/Bearer トークンを個別変数として分離することで、完全な URL 文字列の検出を回避する設計である。
インストール時に、これらの情報が “libcaller.js” により再構成され、Vercel エンドポイントへ向けて HTTP GET リクエストが送信される。この処理は、有効なレスポンスが得られるまで最大 5 回再試行される。
.webp)
サーバがトークン・フィールドを含む 404 レスポンスを返した場合に、このペイロードは Function.constructor を介して、メモリ上で直接実行される。”eval” を回避することで、静的解析ツールによる検知を逃れる意図を持ち、ディスクへの書き込みは行われないため検出は困難となる。
.webp)
復号後のペイロードは、独立した Node.js プロセスとして動作する 4 つのモジュールで構成され、専用ポートを介して C2 サーバ “216.126.237.71” と通信する。
- Module 0:Socket.IO を用いてリモート・アクセスを確立する。
- Module 1:ブラウザ・データベースおよび MetaMask/Exodus を含む 25 以上の暗号資産ウォレットを標的とする。
- Module 2:ホーム・ディレクトリを走査して機密ファイルを収集し、AI ツール・ディレクトリを明示的に列挙する。
- Module 3:500 ミリ秒間隔でクリップボードを監視し、3,000 ミリ秒の初期遅延によりサンドボックス検知を回避する。
防御策
防御側として重要なことは、Vercel へのアウトバウンド通信を、可能な限り監視/ブロックすることである。また、Microsoft が公開した KQL クエリを用いて、Node.js プロセスの異常動作を検出することも推奨される。
開発者にとって必要なことは、npm パッケージ導入前に内容を検証し、パッケージ名と README の不一致を確認することである。さらに、.cursor/.claude などの AI ツール・ディレクトリについては、.ssh/.aws と同等の機密性で管理すべきである。
既存のブランドを偽装する、新規のパッケージを発見した場合は迅速に報告し、コミュニティ全体で被害拡大を防ぐことが重要である。
訳者後書:この攻撃は、信頼されている AI ツールの名前を悪用し、正規のパッケージを装うことで、開発者を油断させるというものです。また、README の記述を他のライブラリから流用し、不自然さがないように整えるという配慮がみられます。技術的な側面では、プログラムを分割して解析を回避し、メモリ上で直接実行することで、足跡を残さない巧妙な仕組みが使われています。利用者が多い Vercel などのインフラを通信先に利用していたことも、異常の検知を難しくさせています。便利なツールを導入する際は、名前だけでなく公開元や内容に矛盾がないか、立ち止まって確認することが大切です。よろしければ、Gemini での検索結果も、ご参照ください。
You must be logged in to post a comment.