10月14日に、Next.jsの16.4.1と15.5.28が公開されました。Criticalのリモートコード実行が2件、HighのDoSが1件で、9月30日のリリースで「後日に回す」とされていた修正がここで出ています。npm audit に next のcriticalが出るようになって気づき、「16.3.8で止めているけれど、どこまで上げればいいのか」を確かめに来た方もいると思います。
この記事では、3件の該当条件と、いま動いている版ごとの上げ先を整理します。16.4.2から16.4.4までの中身と、11月3日(米国時間)に予定されている次のセキュリティリリースへの備えもまとめました。
先に、要点をまとめます(2026年11月3日確認)。
- 修正版は 16系が16.4.1、15系が15.5.28 です。16.3系の修正版は出ていません。16.3.8で運用している場合も影響範囲に入り、16.4.1以上へ上げる必要があります
- Criticalの2件は「
use cache の関数が複数の型付き配列を返す」場合と「glibc系のLinuxで画像最適化を使う」場合です。後者は、Next.jsが使う sharp を0.35.5以上にすれば回避できると公式が案内しています。Highの1件は、App RouterでServer Actionを1つでも使っていれば該当します
package.json が ^16.3.8 のような範囲指定なら、npm audit fix は16.4系の最新版(11月3日時点で16.4.4)まで上げます。16.4.0の変更も一緒に入るため、更新後の確認は16.4への移行として計画します
10月14日に修正された3件は何?
Criticalのリモートコード実行が2件(use cache と画像最適化)、HighのDoSが1件(Server Actions)です。Criticalの2件は、表題で「認証なし」と明記されています。2件は上流のReact側にも対応するアドバイザリがあります。
Next.js公式の告知と各アドバイザリの内容を、影響する版と修正版で並べると次のとおりです。
| 番号 | 深刻度 | 内容 | 影響する版 | 修正版 |
|---|
| GHSA-673q-mjm6-r5xr | Critical | Cache Componentsの use cache 関数が複数の型付き配列を返すと、認証なしでリモートコード実行が起こり得る | 16.0.0〜16.4.0 | 16.4.1(15系は対象外) |
| GHSA-2464-fhr4-w9xw / CVE-2026-96889 | Critical | 画像最適化で使う上流ライブラリのメモリの不具合により、glibc系のLinuxで動かしている場合にリモートコード実行が起こり得る | 10.0.0〜15.5.27、16.0.0〜16.4.0 | 15.5.28、16.4.1 |
| GHSA-p3m5-59mp-jv5r | High | App RouterでServer Actionを1つでも使っていると、細工したリクエストでCPUを使い切り、同じプロセスの他のリクエストが処理されなくなる | 13.0.0〜15.5.27、16.0.0〜16.4.0 | 15.5.28、16.4.1 |
use cache の件とServer Actionsの件には、Reactのアドバイザリ(GHSA-xqc2-xf4c-x3h3、GHSA-h3gv-c5rc-p453)が対応しています。公式は、10月8日の事前告知で「上流の依存関係の脆弱性に対する臨時のセキュリティ更新」と説明しており、9月30日のリリースから延期されていた2件がこの回に含まれています(事前告知)。
画像最適化の件は、アドバイザリの表題に「SVGファイルを使う場合」とありますが、本文の説明は「glibc系のLinuxで動かしている場合」です。公式の回避策は sharp の版で示されているので、該当の判断は次の節のとおり sharp の版と実行環境で行います。
自社のアプリが該当するかは、どこを見れば分かる?
use cache の使い方、Server Actionの有無、sharp の版と実行環境の3点を見ます。ただし use cache の件は回避策がなく、公式は「似た関数がなくても直ちに上げる」よう求めています。条件の確認は、更新を急ぐ順番を決めるために使います。
| 確認すること | 当てはまる場合に関係する番号 | 公式の回避策 |
|---|
next.config で cacheComponents: true にしており、use cache の関数が Uint8Array などの型付き配列を複数返している | GHSA-673q-mjm6-r5xr(Critical) | なし。16.4.1以上へ上げる |
画像最適化(next/image の最適化や /_next/image)を使い、glibc系のLinux(Debian・Ubuntu系のイメージなど)で動かしていて、sharp が0.35.5未満 | GHSA-2464-fhr4-w9xw(Critical) | sharp を0.35.5以上にする |
App Routerで "use server" の関数(Server Action)を1つ以上使っている | GHSA-p3m5-59mp-jv5r(High) | なし。Pages Routerだけの構成やServer Actionを使わない構成は影響しない |
確認に使うコマンド
プロジェクトのルートで、次のように検索すると当たりを付けられます。
# 本番で使う版(ロックファイルに入っている版)
npm ls next sharp
# Cache Components と use cache
grep -n "cacheComponents" next.config.*
grep -rln "use cache" app src 2>/dev/null
# Server Action("use server" の関数)
grep -rlnE "[\"']use server[\"']" app src 2>/dev/null
# 実行環境のCライブラリ(コンテナやサーバーの中で実行する)
ldd --version 2>&1 | head -1
ldd --version の1行目に「GLIBC」や「GNU libc」と出ればglibc系です。アドバイザリはglibc系のLinuxを条件に挙げており、それ以外の環境について影響がないとは書いていません。判断に迷う場合は sharp の版を先に確かめます。
sharp の0.35.5は9月27日に公開された版です。16.3.8や15.5.27の package.json は sharp を範囲指定(16.3.8は ^0.35.4)で依存しているため、9月27日より後に依存関係を入れ直した環境には、すでに0.35.5が入っていることがあります。反対に、それ以前に作ったロックファイルをそのまま使っていれば、0.35.4以前のままです。
16.3系で運用している場合、どの版に上げる?
16.4.1以上です。今回の3件について、16.3系の修正版(16.3.9など)は出ていません。16.4系に上がるため、16.4.0の変更点も一緒に確認します。
アドバイザリの「影響する版」は16系について16.0.0〜16.4.0、修正版は16.4.1だけです。Next.jsのサポートポリシーでは、16系がActive LTS、15系がMaintenance LTSで、修正版はそれぞれの最新の系列に出ます(Next.js Support Policy)。16系の中で古いマイナー版に留まっていると、今回のように修正を受け取れません。

11月3日に、next@^16.3.8 だけを依存関係に持つプロジェクトで npm audit fix を実行すると、入った版は16.4.4でした。^ の範囲指定の中で最新の版まで上がるためです。16.4.0には次のような変更が入っています(詳しくはNext.js 16.4の変更点)。
- React 19.3への対応(View Transitionsなどが安定版になる)
- Turbopackの出力の縮小など、設定を変えなくても入る変更
- Cache Componentsの推奨化。ただし既存アプリで自動的に有効になるわけではなく、
cacheComponents を設定しなければ動作は変わりません
16.4.1と16.4.4のどちらにするかは、次の表を目安にします。
| 上げる先 | 向いている場合 | 注意すること |
|---|
| 16.4.1 | 変更を最小にして、セキュリティ修正だけを先に入れたい | 16.4.2〜16.4.4の不具合修正は入らない。11月3日のリリースで、さらに新しい版への更新が必要になる |
| 16.4.4 | 16.4系の不具合修正もまとめて入れたい | 16.4.2以降の変更(下の表)が、自社の構成に関係するかを確認する |
どちらを選んでも、11月3日(米国時間)のセキュリティリリースで次の版が出ます。いま16.3系なら、今回の更新で16.4系に移り、検証の手順を作っておくと、次回は16.4系の中の小さな更新で済みます。
16.4.2〜16.4.4では何が変わった?
3つとも不具合修正のリリースで、セキュリティ修正は含まれていません。主にTurbopackの安定性と、16.4.0で入った変更の手直しです。
各版のリリースノートから、既存アプリへの影響がありそうなものを抜き出すと次のとおりです。
| 版 | 公開日(米国時間) | 主な内容 |
|---|
| 16.4.2 | 10月15日 | Turbopackのキャッシュの整合性、動的importのチャンク名の衝突、モジュール解決時のrealpathエラーの扱いを修正 |
| 16.4.3 | 10月23日 | 拡張子のないGoogle FontsのURLの修正、proxy.ts でApp Routerのページ用ランタイムを読み込まないよう変更、OpenTelemetryのトレースの分断を修正 |
| 16.4.4 | 11月2日 | PPRの再開時にTurbopackの起動コードへCSPのnonceを付与、依存ライブラリを jsonwebtoken から fast-jwt に変更、Bundle Analyzerのルート一覧の修正 |
proxy.ts を使っている構成、CSPのnonceを設定している構成、OpenTelemetryでトレースを取っている構成は、16.4.4に上げた後にその部分を重点的に確かめます。
15系のアプリはどう対応する?
15.5.28に上げます。15系に関係するのは画像最適化とServer Actionsの2件で、use cache の件は15系の影響範囲に入っていません。更新後は sharp の版も確認します。
15.5.28の package.json は、sharp を ^0.34.3 || ^0.35.5 という範囲で依存しています。ロックファイルに0.34系の sharp が残っている場合、15.5.28に上げても0.34系のまま動くことがあります。公式の回避策は「0.35.5以上」なので、更新後に npm ls sharp で版を確かめ、0.34系なら sharp を0.35.5以上に上げます。
15系のサポート期限は、当初の2026年10月21日から2027年1月31日に延長されています(Next.js Support Policy、11月3日確認)。延長は約3ヶ月で、16系への移行が不要になったわけではありません。移行の時期と費用の考え方はNext.js 15のサポート期限と16への移行で決めることで整理しています。
npm auditやDependabotで検知できる?
11月3日時点では検知できます。3件は10月22日にGitHub Advisory Databaseへ登録され、公表から登録までの8日間は npm audit に出ていませんでした。
npm audit とDependabotは、GitHub Advisory Databaseを見ています。3件の登録日時は10月22日(UTC)で、10月14日の公表から8日後でした。9月22日の件(GHSA-vcvr-r3jv-pc5j)も、公表から登録まで8日かかっています。11月3日に、next だけを依存関係に持つプロジェクトで確認した結果は次のとおりです。
| 確認した版 | npm audit の表示(11月3日) | ロックファイルの sharp |
|---|
| next@16.3.8 | 3件(critical 2件、high 1件) | 0.35.5 |
| next@16.4.0 | 3件(critical 2件、high 1件) | 0.35.5 |
| next@16.4.1 | next について表示なし | 0.35.5 |
| next@15.5.27 | 2件(critical 1件、high 1件) | 0.35.5 |
npm audit は next の版だけで判定するため、sharp が0.35.5以上でも画像最適化の件をcriticalとして表示します。表示が出ても該当の条件に当たっているとは限らず、反対に条件に当たらなくても use cache とServer Actionsの件は版を上げるまで残ります。表示を消す目的ではなく、修正を受け取る目的で版を上げます。
番号の書き方にも違いがあります。Next.jsのアドバイザリでは画像最適化の件にCVE-2026-96889が付いていますが、GitHub Advisory Databaseの登録には11月3日時点でCVE番号がありません。Server Actionsの件は逆に、データベース側にだけCVE-2026-94482が付いています。社内の管理表をCVE番号で付けている場合は、GHSA番号も併記しておくと照合しやすくなります。
公表から登録までの期間は、公式ブログとリリースノートで確認します。リリースノートからアドバイザリの番号を拾うスクリプトは、16.3.8の記事に載せています。
11月3日のセキュリティリリースには、どう備える?
Next.jsは、11月3日(米国時間)にMedium 7件の定期セキュリティリリースを予告しています。内容と修正版は公表と同時に出るため、今回の更新を先に済ませ、検証の手順をそのまま使える状態にしておきます。
10月27日の事前告知では、7件はいずれもMediumで、影響する版と更新方法はリリースと同時に公開するとされています。11月2日公開の16.4.4のリリースノートにも、11月のセキュリティリリースが翌日に出ると書かれています。11月3日(日本時間)の確認時点では、まだ公開されていません。
備えとして、次の3つを用意します。
- 16.4.1以上と15.5.28を先に当てる:11月分の版番号は公表まで分かりませんが、これまでの修正版は16系・15系とも最新の系列に出ています。16.3系のまま待つと、次回は16.4への移行と11月分の修正を同時に検証することになります
- 今回確かめた画面を記録しておく:画像の表示、Server Actionを使うフォーム、
use cache を使うページは、次回もそのまま確認に使えます
- 公表を見る担当を決める:前述のとおり、
npm audit で気づくのは公表から数日後になることがあります。Next.js公式ブログとReleasesを見る人を決めておきます
公表後は、Next.jsの脆弱性一覧【2026年】に番号と修正版を追記します。
更新後には、どこを確認する?
修正が入った箇所、つまり画像の表示、Server Actionを使う操作、use cache のページを確認します。16.3系から上げる場合は、16.4.0の変更にあたるビルドとページ遷移も確かめます。
npm install next@16.4.4 # 16系(16.4.1でも修正は入る)
npm install next@15.5.28 # 15系
npm ls next sharp # 入った版を確認する
eslint-config-next を使っている場合は、next と同じ版にそろえます。
| 修正・変更が入った箇所 | 更新後に確認すること |
|---|
| 画像最適化 | 外部画像・ローカル画像が更新前と同じように表示されるか。sharp が0.35.5以上か |
| Server Actions | フォームの送信、保存、エラー時の表示が更新前と同じか |
use cache | キャッシュした内容が正しく表示され、再検証後に更新されるか |
| 16.4.0の変更(16.3系から上げる場合) | next build が通るか、主要なページ遷移とクライアント側の状態が保たれるか |
16.3.8より前の版から上げる場合は、間の回の修正もまとめて入ります。最後に当てた版から何が修正されたかは、脆弱性の一覧で版ごとに確認できます。更新の担当と保守の範囲をどう分けるかは、Next.jsのCVE対応は誰がやるのかで整理しています。
まとめ
- 10月14日の修正版は 16系が16.4.1、15系が15.5.28 。16.3系の修正版は出ていないため、16.3.8でも16.4.1以上へ上げます
- Criticalの2件は
use cache が複数の型付き配列を返す場合と、glibc系のLinuxでの画像最適化(sharp 0.35.5以上で回避)。Highの1件はServer Actionを使うApp Routerが対象です
npm audit fix は範囲指定の中の最新版まで上げます。11月3日時点では16.4.4で、16.4.0の変更も一緒に入ります
- 3件は10月22日からGitHub Advisory Databaseに載り、
npm audit で検出されます。sharp を更新済みでも、next の版を上げるまで表示は残ります
- 11月3日(米国時間)にMedium 7件の定期リリースが予定されています。16.4系への更新を先に済ませておくと、次回の検証が小さくなります
上の表で、自社のアプリが16.3系か16.4系か、Server Actionを使っているかが分からなかった場合は、そこが相談の起点になります。ゼットリンカーでは、Next.jsで動いているシステムの設定とロックファイルを読んで該当を判定し、検証から本番への反映までを保守として引き受けています。
※本記事は、2026年11月3日時点の Next.js公式ブログ、vercel/next.js のSecurity Advisoriesと各リリースノート、Next.js Support Policy、GitHub Advisory Databaseの登録状況、npmレジストリの情報に基づいています。11月3日(米国時間)のセキュリティリリースの公表により、内容が変わることがあります。
技術仕様・対象バージョンは本文と参照先をご確認ください。
最終更新:2026年11月3日