30秒で判断
- 対応すべき人: Nuxt 3系(< 3.21.10)/ 4系(< 4.5.1)を使い、island / サーバーコンポーネント内で prop に対する
v-for(例:v-for="n in count"や<slot v-for>)を利用している方 - 対応不要な人: Nuxt を使っていない / サーバーアイランドや該当する
v-forを利用していない / すでに 3.21.10・4.5.1 以降を使用中の方 - 確認コマンド:
npm ls nuxtでバージョンを確認
概要
未認証の攻撃者は、prop に対する v-for(例: v-for="n in count")を含む island / サーバーコンポーネントをレンダリングする Nuxt サーバーをクラッシュさせられます。island の URL ハッシュはリクエストの非機密ダイジェストであるため、攻撃者は任意の props に対して有効なハッシュを計算でき、反復対象の prop を巨大な整数として送信できます。その結果サーバー側で v-for が大量展開され、メモリを枯渇させてプロセスがクラッシュ(OOM)します。
CVSSベクトル
| 指標 | 値 |
|---|---|
| 攻撃元区分 (AV) | ネットワーク (N) |
| 攻撃条件の複雑さ (AC) | 低 (L) |
| 必要な権限 (PR) | なし (N) |
| ユーザー関与 (UI) | 不要 (N) |
| 可用性 (A) | 高 (H) |
| 基本値 | 7.5 (High) |
影響を受けるソフトウェア
| 製品 | パッケージ | 影響バージョン |
|---|---|---|
| Nuxt(3系) | nuxt (npm) | < 3.21.10 |
| Nuxt(4系) | nuxt (npm) | < 4.5.1 |
修正バージョンと回避策
- 修正:
nuxtを 3.21.10 または 4.5.1 以降へアップデート - 回避策: 更新までの間、island / サーバーコンポーネントで外部入力を反復回数に用いる
v-forの上限をアプリ側で検証する
関連リンク
データソース: NVD (NIST), OSV (Google), GitHub Advisory Database AI解説は Claude API により自動生成されています。正確性については原文をご確認ください。
