はじめに
個人開発をしている際
- docker-compose.ymlとDockerfileのイメージが公式のものかどうか
- 使用しているバージョンに脆弱性はないか
上記2点を必ず確認してからdocker compose up -dを実行するようにしています。
というのも、基本的にAIに作らせているので慎重に確認しています。
でも今回、axiosというライブラリに怖いマルウェアが入り込んだ事件が発生して意識が変わりました。
個人開発に影響はないか
乗っ取り事件の事を知ってからまずコンテナ内の状況を確認しました。
この"axios": "^1.9.0",という表記、実はnpm installを実行すると最新版をインストールする記述方法だったんです。
"dependencies": {
"axios": "^1.9.0",
"leaflet": "^1.9.4",
"pinia": "^2.3.1",
"vue": "^3.5.28",
"vue-router": "^4.5.1"
}
セマンティックバージョニングの罠: ^1.9.0 と書くと、メジャーバージョンが変わらない限り(2.0.0未満)、最新版を自動で取得してしまいます。今回のように短期間だけ悪意のあるバージョンがリリースされた場合、この自動更新機能が攻撃の経路になってしまう。
急いでバージョン確認しましたが、axios@1.14.0という返答に安心しました。
参考にした記事にも、2026年3月31日 09:21〜12:15 JST の間に npm install を実行していた人は要注意とあったので影響受けていませんでした。
おわりに
Docker起動前にイメージを確認する!
というセキュリティ面をしっかり確認しているから大丈夫!と過信していました。
それ以外のライブラリやフレームワークといった部分にも危険性が潜んでいると実感しました。
今後はもっと気を引き締めて注意していこうと思います。
対策方法いくつかあるので下記にまとめます。
- package-lock.json の重要性: npm install ではなく npm ci を使うことで、ロックファイルに記述された「完全に同じバージョン」を再現できる
- バージョン固定の検討: 信頼性が最優先のプロジェクトでは、^ を外してバージョンを固定する選択肢がある
- スキャニングツールの活用: npm audit や Snyk などのツールを CI/CD に組み込む
参考記事
axiosのサプライチェーン攻撃について、エンジニアとしてきちんと確認しておこう(2026年3月31日)
【緊急】2026年3月31日、npmで2つの大事件が同時発生 ─ axios乗っ取り&Claude Codeソースコード漏洩