Next.jsの脆弱性|11月の7件と16.4.5への上げ方
「Next.js の脆弱性がまた出たらしいが、自分のサイトは関係あるのか」「AI に作ってもらったアプリが Next.js で動いているが、何をすればいいのか分からない」——Next.js で作ったサイトやアプリを持っていると、月に一度はこの不安がやってきます。
結論から言うと、2026年11月3日に Next.js は脆弱性7件を直した 16.4.5 と 15.5.29 を出しました。16系なら 16.4.5、15系なら 15.5.29 に上げるのが答えです。さらに 10月14日の臨時の更新(16.4.1・15.5.28)では、外から任意のコードを動かされうる重大な脆弱性が2件直っています。まだ 16.4.1 / 15.5.28 より前なら、11月分より先にこちらが問題です。
株式会社Fyveは、このサイト(fyve.co.jp)を Next.js 15 系で、自社の業務アプリを Next.js 16 系で作っています。つまり両方の系列で同じ確認をする立場です。本記事では、公式の発表の中身と、2026年11月6日に npm の登録情報を直接引いて分かった「15系だけ版を上げても残りうる穴」まで、私たちが確認する順番どおりにお伝えします。
Next.js 2026年11月のセキュリティリリースの概要
Next.js の公式ブログは、2026年11月3日付で「November 2026 Security Release」を公開しました。直った版は次の2つです。
系列 | 直った版 | 公式の位置づけ | npm に出た日時(UTC) |
|---|---|---|---|
16.x | 16.4.5 | Active LTS | 2026年11月3日 18:01 |
15.x | 15.5.29 | Maintenance LTS | 2026年11月3日 18:36 |
上げるコマンドは公式のとおりです。
npm install next@16.4.5 # 16系
npm install next@15.5.29 # 15系公式ブログのコマンド例には npm install next@16.4.5 # for 16.5 と書かれていますが、16.5 はまだ正式版が出ていません(11月6日時点で npm の latest は 16.4.5、16.5 は canary=試験版のみ)。コメントの書き間違いと読んでよく、入れるのは 16.4.5 です。
この更新は、10月27日に予告されていたものです。Next.js は 2026年7月から「月に1回ほど、事前に予告してから出す」セキュリティリリースの運用に切り替えており、予告記事では「11月3日に中程度(medium)の脆弱性7件を直す」と案内されていました。
直った7件の中身|自分のアプリが当たるかの条件
7件とも「どんなアプリでも必ず当たる」ものではなく、使っている機能や置き場所の条件があります。公式ブログと GitHub のセキュリティ勧告から、条件を表にまとめました。
内容 | 重大度 | 当たる系列 | 当たる条件 |
|---|---|---|---|
| 公式ブログは High/勧告の採点は Medium 6.3 | 16系 | Cache Components を有効にし、同じ |
入れ子の | Medium | 16系 | 内側のキャッシュ関数がルートパラメータを読み、早い値と遅い値を返し、外側が遅い値を待たずに終わる |
| Medium | 16系 | ユーザーやアカウントの区別にバイナリの引数を使い、その結果を利用者の間で共有している |
自前サーバーで、共有のページ外枠(shell)のキャッシュを汚される(GHSA番号は公式ブログに記載なし) | Medium | 16系 |
|
取得したレスポンスをそのまま返すと、別の利用者に応答が渡る(GHSA-pc58-hwjq-p385) | Medium | 15系・16系 | 自前運用で、攻撃者が用意した外部の |
Edge のルートで、HttpOnly のクッキーの値が内部ヘッダーに出る(GHSA-f3mh-rxg3-f5g2) | Medium | 15系・16系 | Edge の Route Handler / API ルートで |
画像最適化で SVG の拒否をすり抜けられる(GHSA-7qx7-33qx-rqx2) | Medium | 15系・16系 | 許可した画像の取得元に攻撃者の画像があり、画像処理の仕組みが SVG を読める |
表から読める大事な点は2つです。
- キャッシュ系の4件は 16系の Cache Components(
use cache)を使っている場合だけ。15系や、Cache Components を有効にしていない16系のアプリには関係しません - 15系に関係するのは残りの3件。うち1件(応答の取り違え)は自前サーバーかつ特定のプロキシ構成のときだけ、もう1件(クッキー)は Edge のルートでクッキーを設定しているときだけです
なお重大度は、資料によって表記が揺れています。10月27日の予告では「7件とも medium」、11月3日の公式ブログでは1件目が「High Severity」、GitHub の勧告の採点では同じ1件目が Medium(6.3)です。どれを採っても「急いで上げるべき重大なもの」ではありませんが、テナントごとにデータを分けている SaaS では1件目の影響が大きいので、その種のアプリなら早めに上げてください。
また、勧告側の「直った版」の欄は11月6日時点で空欄のものが多く、版の正本は公式ブログの「16.4.5 と 15.5.29」です。私たちも勧告の欄ではなく、公式ブログの版で判断しています。

10月14日の臨時の更新(16.4.1・15.5.28)を先に確認する
11月分より重いのが、10月14日に予告つきの臨時の更新として出た3件です。2件は Critical(重大)で、ログインしていない外部の人にサーバー上でコードを動かされうる種類でした。
内容 | 重大度 | 当たる版 | 直った版 |
|---|---|---|---|
| Critical(CVSS v4 9.5) | 16.0.0〜16.4.0 | 16.4.1 |
画像最適化で SVG を扱うと、上流の画像処理ライブラリの不具合で任意のコードを実行される(CVE-2026-96889) | Critical | 10.0.0〜15.5.27、16.0.0〜16.4.0 | 15.5.28、16.4.1 |
Server Actions を1つでも使う App Router のアプリで、細工した要求により CPU を使い切られる(CVE-2026-94482) | High | 13.0.0〜15.5.27、16.0.0〜16.4.0 | 15.5.28、16.4.1 |
1件目について、公式は「回避策はない。似た関数が無くてもすぐに上げるべき」と書いています。2件目は、glibc 系の Linux 上で Next.js が動くときの問題で、回避策として「Next.js が使う sharp(画像処理ライブラリ)を 0.35.5 以上にする」が示されています。
16.4.5・15.5.29 に上げれば、10月分の修正も含まれます。つまり 16.4.1 / 15.5.28 より前に留まっているアプリは、11月分を待たずに今すぐ上げる必要がある、というのが優先順位です。

15系は Next.js を上げても sharp が古いまま残りうる
ここが、公式の文面だけでは気づきにくい点です。公式は「修正版の Next.js に上げれば、パッケージマネージャーが直った sharp を自動で入れる」と書いています。私たちは11月6日に、各版の Next.js が sharp のどの版を許しているかを npm の登録情報で確かめました。
$ npm view next@16.4.5 optionalDependencies.sharp
^0.35.5
$ npm view next@15.5.29 optionalDependencies.sharp
^0.34.3 || ^0.35.5
$ npm view next@15.5.27 optionalDependencies.sharp
^0.34.3 || ^0.35.416.4.5 は 0.35.5 以上しか受け付けないので、上げれば必ず直った sharp になります。一方 15.5.29 は「0.34.3 以上の 0.34系」も引き続き許しています。sharp の 0.34系は 2025年11月の 0.34.5 が最後で、それ以降の版は出ていません。
この許し方だと、もともとロックファイル(package-lock.json など)に sharp 0.34系が記録されている15系のプロジェクトは、Next.js だけを 15.5.29 に上げても sharp が 0.34系のまま残る可能性があります。範囲を満たしているので、パッケージマネージャーには入れ替える理由がないからです。公式の回避策の条件は「0.35.5 以上」なので、15系では上げたあとに必ず次を確かめてください。
npm ls sharp0.34系が出たら、package.json に次を足して入れ直すと 0.35.5 以上に揃います。
"overrides": {
"sharp": "^0.35.5"
}この確認が要るのは、画像最適化(next/image)を使い、glibc 系の Linux で動かしているアプリです。ただ、自分のサーバーやホスティングがどの Linux かを調べるより、npm ls sharp を1回打つほうが早く確実です。このサイトも15系なので、私たちもこの1行を確認の手順に入れます。

自分のアプリが対象かを確かめる手順
私たちが自社のサイトとアプリで確かめるときの順番です。上から順に進め、途中で「対象外」と分かればそこで止めて構いません。
手順1:Next.js の版を確かめる
プロジェクトのフォルダで次を打ちます。package.json に書いてある範囲(^15.5.0 など)ではなく、実際に入っている版を見るのがポイントです。
npm ls next- 16.4.5 以上、または 15.5.29 以上 → 今回の分は対応済み(15系は手順4の
sharpだけ確認) - 16.4.1〜16.4.4、または 15.5.28 → 10月分は直っている。11月分のために上げる
- 16.4.0 以下、または 15.5.27 以下 → 10月の重大な2件も残っている。最優先で上げる
- 15.5 より前(14系・13系など)→ 今回、直った版は出ていない。15.5.29 以上への移行が必要
手順2:どこで動いているかを確かめる
Vercel などのホスティングで動かしているか、自分のサーバーで next start を使っているかで、当たる項目が変わります。11月分のうち「共有の外枠のキャッシュ汚染」と「応答の取り違え」の2件は、公式が自前運用(self-hosted)を条件にしています。
なお、Vercel 上のアプリをファイアウォール側で守ったという案内は、過去の更新(2026年8月分など)では出ていましたが、11月分については11月6日時点で私たちは見つけられていません。「Vercel だから大丈夫」とは考えず、版を上げる前提で進めてください。
手順3:使っている機能を確かめる
次の文字列でプロジェクトを検索すると、当たる機能を使っているかが分かります。
grep -rn "use cache" app src --include="*.ts" --include="*.tsx" --include="*.js" --include="*.jsx"
grep -rn "cacheComponents" next.config.*
grep -rn "runtime = 'edge'\|runtime = \"edge\"" app src
grep -rn "dangerouslyAllowSVG" next.config.*use cacheやcacheComponentsが出る → 16系のキャッシュ系4件と、10月の Critical 1件の対象候補- Edge ランタイムの指定があり、そこで
NextResponse.cookies.set()を使っている → クッキーの件の対象 - Server Actions(
"use server")を使っている → 10月の DoS の対象
ただし、どれにも当たらなくても上げることをすすめます。公式も10月の件で「似た関数が無くても上げるべき」と書いていますし、条件の判定を間違えるより、上げてしまうほうが安くつきます。
手順4:上げて、sharp を確かめ、ビルドして確認する
npm install next@16.4.5 # 16系(15系は next@15.5.29)
npm ls next sharp # 版を確認。15系は sharp が 0.35.5 以上か
npm run build # ビルドが通るか
npm run start # 手元で主要なページを開く同じ系列の中の小さな版上げなので、多くのアプリはそのまま動きます。それでも、ビルドと主要ページの表示までは必ず手元で確かめてから本番に出します。
AI(Claude Code)に版上げを頼むときの指示文
AI と一緒にアプリを作った方は、版上げも AI に任せられます。ただ「Next.js を最新にして」とだけ頼むと、16.5 の試験版を入れようとしたり、15系のアプリを16系へ大きく上げようとしたりすることがあります。系列を変えると書き方の変更が必要になる場合があり、セキュリティ対応の範囲を超えてしまいます。次のように、系列と版を固定して頼むのが安全です。
このプロジェクトの Next.js を、同じ系列のまま修正版に上げてください。
- 今の版を npm ls next で確かめ、16系なら 16.4.5、15系なら 15.5.29 にする
- 系列は変えない(15系を16系にしない)。canary や 16.5 は入れない
- 上げたあと npm ls sharp を確かめ、0.35.5 未満なら package.json の overrides で ^0.35.5 に揃える
- npm run build が通ることを確かめ、変えたファイルと版の差を一覧で報告する
- 本番への反映(デプロイ)はしない。私が確認してから行う最後の1行が大事です。版上げ自体は数分で終わりますが、本番に出す判断は人が持つほうが安全です。AI に任せる範囲と人が見る範囲の分け方は、コミット前に AI で脆弱性を見つける仕組みと組み合わせると、さらに抜けが減ります。
Next.js のセキュリティリリースは月1回の定例になった
2026年7月13日、Next.js は「これまでは予告なしにその都度パッチを出していたが、正式なセキュリティリリースの運用に移る」と発表しました。月に1回ほど、ブログで事前に予告し、そこで日程と、含まれる脆弱性のうち最も高い重大度を知らせる、という形です。理由として、AI を使った脆弱性探しが業界全体で急増していることが挙げられています。
公式ブログの記事一覧から、2026年後半の流れを並べるとこうなります。
日付 | 内容 |
|---|---|
7月13日 | 定例化の発表 |
7月20日 | 7月のセキュリティリリース |
8月25日 | 8月のセキュリティリリース(予定の26日から前倒し) |
9月22日 | 上流の重大な問題に対する臨時の更新(16.3.6・15.5.26) |
9月30日 | 9月のセキュリティリリース |
10月14日 | 上流の脆弱性に対する臨時の更新(16.4.1・15.5.28) |
11月3日 | 11月のセキュリティリリース(16.4.5・15.5.29) |
定例の月1回に加えて臨時の更新もあるため、実際には月1〜2回のペースで版上げが来ています。ここから言えるのは、「脆弱性のニュースを見たら対応する」ではなく、「月に1回、予告を見て版を上げる」作業を最初から運用に組み込むべき、ということです。
予告には日程と最も高い重大度が出るので、予告の時点で「Critical があるなら当日中、medium だけなら週内」のように対応の速さを決めておくと迷いません。11月分は予告の時点で medium のみと分かっていたので、急ぎの作業ではありませんでした。逆に10月の臨時の更新は Critical を含むと予告されていたので、出た日に上げるべき種類でした。
Next.js のアプリは Node.js の上で動くので、Node.js 自体の更新も同じ月に重なることがあります。2026年10月は Node.js 側でも脆弱性10件の更新が出ていました。
このサイトと自社アプリで、何が当たるか
最後に、私たち自身の当てはめを書いておきます。条件の表をどう読むかの例として使ってください。
このサイト(fyve.co.jp) | 自社の業務アプリ | |
|---|---|---|
系列 | Next.js 15系 | Next.js 16系 |
上げる先 | 15.5.29 | 16.4.5 |
キャッシュ系4件 | 関係なし(15系) |
|
自前運用が条件の2件 | ホスティングで動かしているので条件外 | 同じく条件外 |
追加で見る点 |
| 上げれば |
同じ「Next.js のサイト」でも、15系か16系か、どこで動かしているかで当たる項目は半分以上変わります。逆に言えば、版と置き場所と使っている機能の3つを書き出しておけば、毎月の判定は数分で終わります。AI と開発しているなら、この3つをプロジェクトの説明ファイル(Claude Code なら CLAUDE.md)に書いておくと、予告が出たときに AI へ照合を頼めます。
PHP で動く WordPress などのサイトでも、考え方は同じです。版と置き場所を把握していれば、脆弱性のニュースに慌てずに済みます。
php2shellとは|PHPの脆弱性でサイト運営者が今やること
よくある質問
Vercel で動かしていれば、何もしなくていいですか?
いいえ。11月分の7件のうち、自前運用が条件なのは2件だけです。キャッシュ系やクッキー、画像の件はホスティングの種類を問いません。Vercel 側の対策の案内も11月分については見当たらないため、版を上げてください。
14系のまま使っています。どうすればいいですか?
今回の修正は 16.4 系と 15.5 系にしか出ていません。14系以前には直った版がないので、15.5.29 以上への移行を計画してください。系列をまたぐ移行は書き方の変更を含むことがあるため、セキュリティの版上げとは分けて、時間を取って進めるのが安全です。
16.5 の canary を入れれば、もっと安全ですか?
canary は試験版で、本番向けではありません。セキュリティの修正は 16.4.5 に入っています。本番のアプリは正式版の 16.4.5 を使ってください。
自分で作っていない(制作会社に頼んだ)サイトはどうすれば?
作った会社か保守をしている会社に「Next.js の版と、11月3日のセキュリティリリースへの対応状況」を聞いてください。この記事の手順1の版の区分を伝えれば、話が早く進みます。
まとめ
- 2026年11月3日、Next.js は脆弱性7件を直した 16.4.5 と 15.5.29 を公開した
- キャッシュ系の4件は 16系の Cache Components を使っている場合だけ。15系に関係するのは3件で、うち2件も条件つき
- 16.4.1 / 15.5.28 より前なら、10月14日の Critical 2件が残っている。こちらが最優先
- 15系は Next.js を上げても
sharpが 0.34系のまま残りうる。npm ls sharpで 0.35.5 以上かを必ず確かめる - Next.js のセキュリティリリースは月1回の定例+臨時。予告の重大度を見て対応の速さを決め、版上げを運用に組み込む
株式会社Fyveは、自社のサイトとアプリで確かめた手順をもとに、AI を使った開発と運用の進め方をお伝えしています。公式の発表は今後も月1回ほど続くので、最新の内容は Next.js の公式ブログと GitHub のセキュリティ勧告で確認してください。
Claudeのこの5つの設定、今すぐ見直した方がいい

共有・学習・入力・権限・委任。事故が起きるのはこの5つだけ(全28ページ)
2026年7月、Claudeの共有チャットがGoogle検索から読める状態になっていました。原因は設定そのものではなく、自分が過去に共有したものを覚えていないことでした。共有リンクの棚卸しから、学習をオフにしても残る例外条項、Claude Codeの権限モードまで、今日30分で確認できる形にまとめています。
- 見落としやすい共有リストは3つある(3つ目は画面の下)
- 学習をオフにしても残る、公式の例外条項
- 権限モード6つの違いと、Shift+Tabでの切り替え方
- 私が実際に禁止しているコマンド23行を全文公開
メールアドレス登録で他にも様々な資料を閲覧できます








+10PDF 19点・合計499ページ + すぐ使えるzip素材 3点
どれも登録後の受け取りページから、まとめてダウンロードできます。
毎週配信の無料ニュースレター「AIネイティブ超研究」の購読特典です。メール登録後すぐ、受け取りページのご案内が届きます。そこにはこの資料に加えて、過去の特典もすべてまとめて置いてあります。あわせて、AI活用に関するお知らせやお役に立てそうなご案内をお送りすることがあります。解除はいつでも1クリック。
御社の業務に合わせたClaude Code導入支援
「AIツールを導入したが、現場で使われない」を終わらせる。
業務課題のヒアリングから設計、ハンズオン実践、運用定着まで一貫して支援します。