発生日:2026年3月31日。 セキュリティー研究者らは、広く利用されているJavaScript用HTTPクライアントAxiosのnpmリリース2件が、クロスプラットフォームのリモートアクセス型トロイの木馬をインストールするよう設計された依存パッケージによって汚染されていたと公表した。StepSecurityは影響を受けたリリースをaxios 1.14.1と0.30.4と特定し、いずれかのバージョンをインストールした人に対し、システムが侵害されたものとして扱うよう勧告した。

同社の分析によると、攻撃者は主要メンテナーのnpmアカウントを掌握し、長期間有効なアクセストークンを使って両バージョンを公開した。レジストリーの記録上は、正規のメンテナーからのリリースに見えたが、プロジェクトの通常のリリースパターンとは異なっていた。StepSecurityによると、1.xパッケージには、GitHub Actionsを通じて公開された正規ビルドに関連するOpenID Connectの紐付けと、リポジトリーのコミット参照が欠けていた。

Axiosのコード自体には、悪意ある行は含まれていなかった。代わりに、Axiosが一度もインポートしていないにもかかわらず、パッケージはplain-crypto-js 4.2.1を依存関係として宣言していた。そのパッケージには、依存関係のインストール時に自動実行され、コマンド&コントロールサーバーへ接続するインストール後スクリプトが含まれていた。別々の第2段階ペイロードがmacOS、Windows、Linuxを標的にしていた。

StepSecurityによると、ドロッパーはその後、活動の証拠を削除し、パッケージマニフェストを無害に見えるファイルと置き換えた。差し替えられたマニフェストはバージョンを4.2.0と記載していたため、実行後に通常のパッケージ一覧表示コマンドを使うと、無害なバージョンが表示された可能性がある。周囲の暗号化関連ソースファイルは正規のcrypto-jsパッケージから変更せずにコピーされており、インストール後の設定が決定的な相違点だった。

この作戦は、Axiosのリリースが公開される前から準備されていた。調査によると、まず無害に見えるplain-crypto-js 4.2.0パッケージが公開され、その約18時間後に悪意ある4.2.1が公開された。その後、Axiosの2つのブランチが39分以内に相次いで汚染された。StepSecurityは、インストール後、数秒以内にコールバックが始まる可能性があると述べた。

この事案は、StepSecurityのパッケージ分析サービスとHarden-Runner製品を通じて発覚した。これらが継続的インテグレーションの処理中に、見慣れない外部接続を検知したためだ。公開された検知事例の一つは、Backstageのワークフローで発生した。セキュリティー企業によると、Backstageチームは、そのワークフローは意図的にサンドボックス化されており、インストールによるプロジェクトへの影響はなかったと説明した。

開発チームにとって今回の公表は、よく知られたパッケージ名と有効なメンテナーの身元だけでは、リリースの完全性を証明できないことを示している。信頼された公開者のメタデータ、リポジトリーのタグ、ロックファイルの変更、予期しないインストールスクリプトといった指標から、公開経路の逸脱を発見できる可能性がある。名指しされたAxiosのいずれかのバージョンを取得したチームは、インシデント対応手順に従い、その環境からアクセスできる秘密情報をローテーションし、ネットワークとエンドポイントの証拠を調査したうえで、感染後のパッケージの外観だけに頼らず、無害であることが確認された依存パッケージから再構築すべきだ。

同社は、この問題をAxiosのメンテナーに責任ある形で開示したと述べた。同社の説明は、自動化されたインストール動作により、開発者が依存関係ツリーを手作業で調べる前に攻撃が作動できた点を強調している。