Hugging Face を介したマルウェア配信:悪意の npm パッケージ “js-logger-pack” とは?

Malicious npm Package Turns Hugging Face Into Malware CDN and Exfiltration Backend

2026/04/23 CyberSecurityNews — “js-logger-pack” と名付けられた不正な npm パッケージにより、広く信頼される AI モデル・ホスティング・プラットフォーム Hugging Face が悪用され、マルウェア配布ネットワークやデータ窃取の基盤として機能していることが判明した。このキャンペーンが示すのは、攻撃者が正規クラウドサービスを悪用しながら検知を回避する、サプライチェーン攻撃手法の変化である。

この無害に見えるパッケージを開発者がインストールすると、実際の脅威を隠蔽するための正当な “logger” がプロジェクトへロードされる。しかし、インストール時に自動実行されるポスト・インストール・スクリプトにより、真の攻撃が開始される。

このスクリプトは、バックグラウンド・プロセスをデタッチ状態で起動するため、npm インストール・コマンドは正常終了したように見えるが、隠されたダウンローダーは動作し続ける。

ホスト OS に応じて、攻撃者が管理する Hugging Face リポジトリ “Lordplay/system-releases” から 4 種類の悪意のバイナリのいずれかが取得される。

JFrog Security 研究者たちが抽出したのは、Windows/macOS/Linux 向け Node.js Single Executable Application (SEA) バイナリに埋め込まれた JavaScript ペイロードである。

それらを分析して判明したのは、同一のクロス・プラットフォーム JavaScript バンドルが、すべてのバイナリへ注入されていたことだ。つまり、4 つのバイナリは異なるマルウェア・ファミリではなく、同一インプラントを異なる Node.js ランタイム・コンテナでラップしたものだった。この研究結果は、2026年04月23日に公開された。

感染後のインプラントは、各プラットフォームごとの手法で永続化を試行する。Windows ではスケジュールタスク/レジストリ Run キーが、macOS では LaunchAgent、Linux では systemd ユニットが使用される。

その後に WebSocket を通じて、”195[.]201[.]194[.]107″ の C2 サーバへシステム情報が送信される。それにより攻撃者は、任意のファイル読み書き/認証情報の探索/キーログの取得/クリップボードの監視/追加ペイロード展開などが可能な状態となる。

特に注目すべき点は、データ外部送信先の選択である。窃取データはプライベート・サーバではなく、Hugging Face のプライベート・データセットへアップロードされる。

情報漏洩のバックエンドとして Hugging Face を悪用

このキャンペーンの技術面での顕著な点は、リアルタイムなデータ窃取チャネルとして Hugging Face を悪用する点である。

Hugging Face Exfiltration Flow (Source - JFrog)
Hugging Face Exfiltration Flow (Source – JFrog)

攻撃者が C2 を通じてアップロード・タスクを指示すると、インプラントにより Hugging Face トークン/ユーザー名/保存先パス/アップロード ID が受信される。

対象とされるファイルやフォルダは、マルウェアにより gzip 形式へ圧縮される。続いて、攻撃者のアカウントで Hugging Face プライベート・データセットが作成または再利用され、埋め込み Hugging Face クライアントにより、圧縮されたアーカイブがアップロードされる。

この処理が完了した後に、Hetzner 上のコントローラへと通知が送信される。未完了アップロードは、ローカルのステート・ファイルに記録され、再接続時に送信されるためデータ損失は発生しない。

この手法により、C2 サーバは窃取データを直接保存する必要がなくなり、露出を低減しトラフィック検知を困難にする。

この攻撃者は、Hugging Face アカウントを指定するだけで、ストレージ機能をプラットフォームへ委任できる。

さらに、このインプラントはセッション強制リセット機能を持つ。ブラウザ・プロセスを終了させて認証情報を削除することで、ユーザーに再ログインを強制し、その入力をキーロガーで取得する。

この操作後に入力された認証情報は、数分以内に攻撃者のプライベート・データセットへ送信される。

対策

影響を受けた環境においては、すべてのシークレットを直ちにローテーションする必要がある。その対象に含まれるのは、AWS キー/SSH キー/npm トークン/データベースパスワード/API キー/ブラウザに保存される認証情報などである。

OS に応じて、以下の永続化アーティファクトを削除する:

Windows:MicrosoftSystem64 スケジュールタスク/レジストリ Run キー
macOS:LaunchAgent エントリー
Linux:systemd ユニット

管理者にとって必要なことは、パッケージを削除し npm キャッシュをクリアすることだ。その後に “npm config set ignore-scripts true” を実行して、ポストインストール・フックの自動実行を防止する。さらに、”package.json” の dependency 変更について、minor 更新を含めて慎重に確認する。

“js-logger-pack” バージョン 1.1.27 を実行したマシンは、すべてのシークレットがローテーションされ、永続化が完全に除去されるまで、完全に侵害された状態として扱う必要がある。