Axiosにサプライチェーン攻撃——週間1億ダウンロードのHTTPクライアントが標的に

2026年3月31日、JavaScriptエコシステムで広く使われているHTTPクライアントライブラリ「Axios」が、npmを通じたサプライチェーン攻撃の被害を受けたことが明らかになった。Axiosは週間1億100万ダウンロードを誇る超メジャーパッケージであり、その影響範囲は計り知れない。

何が起きたか

今回の攻撃では、Axiosのバージョン 1.14.1 および 0.30.4 に、plain-crypto-js という新しい依存パッケージが追加された。この plain-crypto-js はその日に新規公開されたマルウェアであり、認証情報の窃取リモートアクセス型トロイの木馬(RAT)のインストールという二段構えの悪意ある機能を持っていた。

このようなサプライチェーン攻撃は、ユーザーが直接マルウェアをインストールするわけではなく、信頼するライブラリの依存関係として自動的に引き込まれる点が特に危険だ。Axiosのような信頼性の高いパッケージへの混入であれば、多くの開発者がセキュリティチェックをすり抜けてしまう可能性がある。

攻撃の手口:流出したnpmトークン

調査の結果、攻撃者は有効期限のない長期npmトークン(long-lived npm token)の流出を悪用してパッケージを公開したとみられている。

AxiosのGitHubリポジトリには、**Trusted Publishing(信頼済み公開)**の採用を求めるIssueがすでに存在している。Trusted Publishingを導入すると、npmへの公開をGitHub Actionsのワークフローからのみに制限できるため、今回のような不正なトークン悪用を防ぐことができる。

見分けるためのヒント:GitHubリリースのないnpm公開

セキュリティ研究者のSimon Willisonは、今回の攻撃に際して興味深い観察を共有している。

「悪意ある公開パッケージには、対応するGitHubリリースが存在しない」 このパターンは、先週発覚したLiteLLMへのサプライチェーン攻撃でも同様に確認されており、不審なリリースを見つけるための有効な経験則になりうるという。npmでパッケージが更新された際、GitHubのリリースタグと照合する習慣をつけることが、今後のサプライチェーンリスク低減につながる。

日本の開発者へ

AxiosはNext.js、Nuxt、React、Vue.jsなど日本でも広く使われているフレームワークのプロジェクトで標準的に採用されている。package-lock.jsonyarn.lock を確認し、1.14.1 または 0.30.4 を使用している場合は即座にバージョンを変更することが推奨される。また、plain-crypto-js への依存が混入していないかを npm ls plain-crypto-js で確認するのも有効だ。

オープンソースのサプライチェーンへの攻撃は近年急増しており、今回の事例はその深刻さを改めて浮き彫りにしている。


元記事: Supply Chain Attack on Axios Pulls Malicious Dependency from npm