概要
Nuxt の routeRules 機能において、ルートルールマッチャー(rou3 ベース)とページルーター(vue-router)の間でパスのケース感度(大文字・小文字の区別)に不一致があります。
routeRules マッチャーは大文字・小文字を区別するマッチングを行いますが、vue-router はデフォルト設定(sensitive: false)で大文字・小文字を区別せずルートを解決します。このため、例えば /admin/dashboard に設定したミドルウェアが /Admin/dashboard への要求では適用されない状態になります。
攻撃者が URL の大文字・小文字を変えてアクセスすることで、認証ミドルウェアや認可チェックを迂回できる可能性があります。Nuxt の routeRules でアクセス制御を実装しているアプリケーションが対象です。
影響を受けるソフトウェア
| 製品 | バージョン |
|---|---|
| nuxt | 3.21.7 未満 |
| nuxt | 4.4.7 未満 |
修正バージョンと回避策
修正バージョン:
- Nuxt 3.x: 3.21.7 以降
- Nuxt 4.x: 4.4.7 以降
回避策: アップデートが困難な場合は、ミドルウェアによるアクセス制御を routeRules のみに依存せず、サーバーサイドのミドルウェアや API ルートでも重複して実装することを検討してください。
関連リンク
データソース: NVD (NIST), GitHub Advisory Database AI解説は Claude API により自動生成されています。正確性については原文をご確認ください。
