😈
Next.js 12はCVE-2023–46298の影響を受けるのか
Next.js 12のプロジェクトにdependabotの警告が出たので調査したメモ。
SeverityはLowだが、Affected versionsが>= 0.9.9, < 13.4.20-canary.13
と非常に広い範囲になっている。
まず、下記で詳細な解説がされているのでありがたく読む。
この脆弱性の影響を受けるのは、下記の条件を全て満たす場合のみであることが分かった。
- SSRを使用している
- CDNを使用している
つまり、サービスをSPAでしか運用していなかったり、SSRでもCDNを使用していなければ影響を受けない。
そして、脆弱性の要因となった「リクエストヘッダーにx-middleware-prefetch
がある場合、getServerSidePropsを実行せずに空オブジェクトを返す」という挙動は、2022年のこのPRで追加されたものだった。リリースバージョンだとv13.0.4で入ったもので、それ以前は影響を受けないはずであることが分かる。
その後、本来必要だった「prefetchのリクエストがCDNにキャッシュされないよう、cache-controlヘッダーでno-cache等をレスポンスする」という対応がこのPRで導入され、めでたく脆弱性が修正された状態になっている。
結論
Next.js 12以前を含む、v13.0.4より前のバージョンは影響を受けないはず。
Discussion