30秒で判断
- 対応すべき人: Nuxt 3系(< 3.21.10)/ 4系(< 4.5.1)を使い、
vue.runtimeCompiler: trueを有効化しているうえ、サーバーアイランドの props を動的コンポーネント解決に渡している方 - 対応不要な人: Nuxt を使っていない /
runtimeCompilerを有効化していない(デフォルトは無効)/ すでに 3.21.10・4.5.1 以降を使用中の方 - 確認コマンド:
npm ls nuxtでバージョンを、grep -R "runtimeCompiler" nuxt.config.*で設定を確認
概要
Nuxt のサーバーアイランドは /__nuxt_island/ エンドポイント経由で props を受け取ります。vue.runtimeCompiler: true(既定では無効)を有効化し、アプリケーションがサーバーアイランドコンポーネントで props を Vue の動的コンポーネント解決(<component :is>、resolveDynamicComponent、h() 等)へ転送している場合、攻撃者が props に template キーを注入することでサーバーサイドのリモートコード実行につながります。
CVSSベクトル
| 指標 | 値 |
|---|---|
| 攻撃元区分 (AV) | ネットワーク (N) |
| 攻撃条件の複雑さ (AC) | 高 (H) |
| 必要な権限 (PR) | なし (N) |
| ユーザー関与 (UI) | 不要 (N) |
| 機密性/完全性/可用性 | いずれも 高 (H) |
| 基本値 | 8.1 (High) |
影響を受けるソフトウェア
| 製品 | パッケージ | 影響バージョン |
|---|---|---|
| Nuxt(3系) | nuxt (npm) | < 3.21.10 |
| Nuxt(4系) | nuxt (npm) | < 4.5.1 |
修正バージョンと回避策
- 修正:
nuxtを 3.21.10 または 4.5.1 以降へアップデート - 回避策: すぐに更新できない場合は
vue.runtimeCompilerを無効化(既定値)に戻す
関連リンク
データソース: NVD (NIST), OSV (Google), GitHub Advisory Database AI解説は Claude API により自動生成されています。正確性については原文をご確認ください。
