Hackers Hijack 18 Popular npm Packages Downloaded Over 2 Billion Times Weekly
2025/09/09 gbhackers — 毎週 20億回以上もダウンロードされている、きわめて人気の高い npm パッケージ 18個をハッカーが乗っ取り、暗号通貨のユーザーと開発者を標的とする高度なマルウェアを注入しているという。Aikido のレポートによると、9月8日の早朝にセキュリティ・フィードが警告したのは、chalk/debug/chalk-template/supports-color などの人気パッケージ 18個が迅速に更新され、悪意のコードにより汚染されたことだ。

これらのパッケージは、無数のアプリで使用されており、開発ツール/ログ記録/カラー出力/テキスト処理などの基盤となっている。
一連のパッケージは配布数が非常に多いため、この攻撃の影響は広範囲に及ぶものとなる。それらのパッケージに含まれる “debug” や “chalk” などは、1週間に数億回もダウンロードされている。
npm パッケージの大量乗っ取りが発見される
この攻撃者が注入したマルウェアは、”fetch” や “XMLHttpRequest” などの重要なブラウザ API や、”window.ethereum” や “Solana” などのウォレット・インターフェイスをフックするものだ。
このコードは、Web トラフィック/コンテンツを密かにスキャンし、暗号通貨ウォレットのアドレスと支払いリクエストを探し出す。
侵害されたユーザーがウォレット (Ethereum/Bitcoin/Solana/Tron/Litecoin/Bitcoin Cash) を操作すると、このマルウェアにより、正当な送信先が攻撃者が管理する類似のウォレット・アドレスへと密かに切り替えられ、デジタル資産の転送先がリダイレクトされるが、UI に目に見える変化は生じない。
また、このマルウェアは、トランザクション署名を乗っ取り、パラメータを途中で変更することで、送金/承認/許可を攻撃者に送信するが、その際にも UI に異常はみられない。
このマルウェアに実装された戦略は、難読化されたコードと類似のアドレスを活用するものであり、検出を極めて困難にしている。
最初の感染経路は、npm の公式サポートを装うドメインから送信された、巧妙に作成されたフィッシング・メールであることが判明した。このメールは、メンテナーを騙して認証情報を盗み取ろうとした。
侵害に成功した攻撃者は、直ちにパッケージの更新を開始し、その後に、複数の著名プロジェクトのメンテナーも標的にしていった。
この攻撃の対応にあたった開発者たちは、侵害されたパッケージのクリーンアップを急いで行った。しかし、”simple-swizzle” など一部のパッケージは、侵害から数時間が経っても感染したままだった。
このインシデントが示すのは、人気の OSS プロジェクトがもたらすサプライチェーンのリスクである。ユーザーが行うべきことは、依存関係を検証し、侵害されたバージョンの使用を避け、改竄の兆候を確認することだ。特に暗号通貨を扱う場合は、注意が必要だ。
Aikido などのプロジェクトが推奨するのは、パッケージ・レベルの脅威が本番環境のアプリに到達する前に検出/ブロックするための、自動化されたセーフ・チェーン・ツールである。
| Package Name | Weekly Downloads | Status |
| chalk | 299.99m | Compromised |
| debug | 357.6m | Compromised |
| ansi-styles | 371.41m | Compromised |
| strip-ansi | 261.17m | Compromised |
| chalk-template | 3.9m | Compromised |
この npm インシデントが浮き彫りにするのは、攻撃者が制御する人気パッケージのアップデートが、世界中のソフトウェア・サプライチェーンと暗号通貨ユーザーの、大半を危険にさらす可能性があることだ。
数多くの開発者が利用する npm パッケージが乗っ取られ、暗号通貨関連のマルウェアが仕込まれたとのことです。この攻撃の起点は、メンテナーを狙うフィッシング・メールでした。攻撃者は npm の公式サポートを装って認証情報を奪い取り、正規の権限を得た上で人気パッケージを改竄しました。それにより、ユーザーや開発者の環境に悪意のコードが届くようになり、結果的にウォレット情報の窃取や取引改竄につながったと、この記事は指摘しています。ご利用のチームは、ご注意ください。よろしければ、npm で検索も、ご参照ください。


You must be logged in to post a comment.