30秒で判断
対応すべき人
- npm で
node-mixmeを直接インストールしているプロジェクト node-mixmeを依存関係に含むライブラリを使用しているNode.jsプロジェクト(npm ls node-mixmeで確認)
対応不要な人
node-mixmeを使用していない- バージョン 0.5.1 以降を既に使用している
- ブラウザ専用環境で、外部からの任意オブジェクト注入経路がない
確認コマンド
# node-mixme のバージョン確認
npm ls node-mixme
# グローバルにインストールされているか確認
npm ls -g node-mixme
# package-lock.json から依存関係を確認
grep -r "node-mixme" package-lock.json | head -5
概要
CVE-2021-28860 は、Node.js の npm パッケージ node-mixme(v0.5.1未満)に存在するプロトタイプ汚染(Prototype Pollution)脆弱性です。
mutate() および merge() 関数が __proto__ キーを適切にフィルタリングしないため、攻撃者が制御した入力オブジェクトを通じてJavaScriptの Object.prototype を改ざんできます。汚染されたプロパティはプログラム内のすべてのオブジェクトに伝播するため、ロジックの変更やサービス拒否(DoS)が発生する可能性があります。
特に外部からの入力(APIリクエスト、ファイル読み込みなど)を mutate() や merge() に渡している場合は影響が大きくなります。
CVSSベクトル
| 項目 | 値 | 説明 |
|---|---|---|
| Attack Vector | Network | ネットワーク経由で攻撃可能 |
| Attack Complexity | Low | 特別な条件不要 |
| Privileges Required | None | 認証不要 |
| User Interaction | None | ユーザー操作不要 |
| Scope | Unchanged | - |
| Confidentiality | None | 機密性への直接影響なし |
| Integrity | High | 完全性への影響: 高(プロパティ改ざん) |
| Availability | High | 可用性への影響: 高(DoS) |
CVSS 3.x スコア: 9.1 (Critical)
影響を受けるソフトウェア
| 製品 | エコシステム | 影響バージョン |
|---|---|---|
| node-mixme | npm | < 0.5.1 |
修正バージョンと回避策
推奨対応: npm update node-mixme または npm install node-mixme@latest で 0.5.1 以降に更新してください。
# アップデート実行
npm install node-mixme@latest
# 更新後のバージョン確認
npm ls node-mixme
回避策(アップデートが困難な場合):
mutate()やmerge()に渡すオブジェクトから__proto__やconstructorキーを事前にサニタイズする- 外部入力をそのまま
node-mixmeの関数に渡さない
関連リンク
データソース: NVD (NIST), GitHub Advisory Database AI解説は Claude API により自動生成されています。正確性については原文をご確認ください。
