Joyfillのnpm認証情報窃取型マルウェア、GitHubトークンやブラウザパスワード、暗号資産ウォレットを標的に

正規のJoyfill npmパッケージ@joyfill/componentsおよび@joyfill/layoutsのベータ版を装った悪意あるリリースが2026年7月28日に公開され、高度な認証情報窃取リモートアクセス型トロイの木馬(RAT)が仕込まれていたことが判明しました。

この攻撃が深刻なのは、対象パッケージをアプリケーションがインポートした時点で注入されたコードが実行されてしまう点です。つまりnpm install --ignore-scriptsを使っても実行を防ぐことはできません。

影響を受けたリリースをインストールしてインポートした開発者環境、CI/CD環境、ビルドシステムはすべて侵害されたものとして扱う必要があります。

悪意あるコードが注入されていたのは公開されたパッケージのtarballのみで、各プロジェクトの公開ソースリポジトリには含まれていませんでした。

研究者らは、両方のJoyfillパッケージから同一の高度に難読化されたペイロードを発見しており、これは同一の攻撃者が管理するインプラントである可能性が高いことを強く示しています。

このペイロードはビルド済みのJavaScriptバンドルファイル内に隠されています。インポートされると、グローバル変数を介してNode.jsのrequire関数とmodule関数を公開し、後続のマルウェアステージが不審に見えるモジュール名を明示することなく重要なシステム関数を読み込めるようにします。

このマルウェアは、公開ブロックチェーンサービスをコマンド&コントロール(C2)のルックアップ手段として利用しています。

Tron、BNB Smart Chain、Aptosの各トランザクションからデータを取得し、メモリ上で情報を復号したうえで、攻撃者が管理するインフラを特定するために使用します。この仕組みにより、攻撃者は悪意あるパッケージを再公開することなくC2サーバーを変更できます。

その後、攻撃はSocket.IOベースのRAT接続を確立します。この主要なnpmキャンペーンでは、C2インフラとして166.88.134.62が使用されていると報告されています。

このRATは感染システムのプロファイリング、ディレクトリの一覧表示、ファイルのアップロードとダウンロード、クリップボード内容の窃取、任意のJavaScriptコマンドの実行が可能です。

また、実行時にaxiossocket.io-clientといった不足している依存関係のインストールも試みます。不審な挙動としては、切り離されたnode -eプロセス、想定外のランタイムnpmインストール、Node.jsプロセスからのブロックチェーンAPI呼び出し、平文HTTPによるSocket.IO通信などが挙げられます。

最も重要な点として、このマルウェアはワーム的な永続化機能を備えています。VS Code関連モジュール、Cursor、Discord、GitHub Desktop、そしてグローバルにインストールされたnpm CLIを含む開発者向けアプリケーションやツールにローダーを注入することができます。

npmのlib/cli.jsを改変する手口は特に危険です。以降に実行されるあらゆるnpmコマンドがマルウェアを再び起動させる可能性があるためです。

最終段階のペイロードはPythonベースの認証情報窃取ツールを展開しますが、これは主にCIランナーではなく開発者のワークステーションを標的としています。

このツールは、ブラウザのパスワード、ブラウザ拡張機能のウォレットデータ、パスワードマネージャーの情報、Gitの認証情報、GitHub CLIトークン、npmトークン、OSキーチェーンのシークレット、暗号資産ウォレットの鍵を窃取するよう設計されています。

収集されたデータは、Windowsでは%USERPROFILE%\.npm、LinuxおよびmacOSでは/tmp/.npmに一時保存された後、暗号化されて攻撃者のインフラに送信されると、stepsecurityは述べています

セキュリティチームは、ロックファイルやビルド記録の中に2773を含むJoyfillのプレリリースバージョンがないか確認する必要があります。

影響を受けたバージョンがインストールまたはインポートされていた場合は、直ちに削除し、クリーンなロックファイルから依存関係を再構築してください。組織は、2026年7月28日以前に公開された既知の安全なリリースに固定することが推奨されます。

開発者のデバイスは優先的な調査対象となります。npm CLIのファイルおよびElectronアプリケーションのバンドルに、C250617AC260512ARS260605といった注入マーカーが含まれていないか確認してください。改ざんが発見された場合は、影響を受けた開発ツールを再インストールしてください。

SOC調査の死角を減らし、ANY.RUNで脅威をより早期に封じ込めることで、対応コストと業務への影響を軽減しましょう。

翻訳元: https://cyberpress.org/joyfill-npm-credential-stealer/

ソース: cyberpress.org