Next.jsの脆弱性(use cacheのRCEなど)|16.4.1・15.5.28に上げるバージョンと確かめ方

Next.jsの脆弱性、use cacheのRCEなど。上げる先と確かめ方。直ったバージョンはNext.js 16.4.1と15.5.28。まず npm ls next で、使っているNext.jsのバージョンを確かめる。16.0.0〜16.4.0なら16.4.1以上に、15.5.27以前の15系なら15.5.28に上げる。上げたら、アプリをビルドし直して配り直す。CIやコンテナでビルドしているときは、ロックファイルのNext.jsのバージョンも新しくなっているかを見る。Next.jsでアプリを動かしている人へ

Next.jsが、2026年10月14日(米国時間)に臨時のセキュリティ更新を出しました。認証なしで外からコードを実行される(RCE)おそれがある2件と、サービスを止められる1件を直すもので、直ったバージョンはNext.js 16.4.1と15.5.28です。

回避策がないものもあり、Next.jsはすぐに上げることを勧めています。まず、使っているNext.jsのバージョンを確認してください。

npm ls next

16.0.0〜16.4.0なら16.4.1以上に、15.5.27以前の15系なら15.5.28に上げます。10系〜14系も対象で、直ったバージョンは出ていないため、15.5.28か16系に移ってください。

2026年10月27日16時2分(日本時間)時点のNext.js(Vercel)の発表とGitHubのアドバイザリの内容です。

目次

結論:上げる先のバージョン

使っているバージョン 上げる先
16.0.0〜16.4.0 16.4.1以上(10月27日時点の最新は16.4.3)
15系(15.5.27以前) 15.5.28
14系以前 15.5.28か16系(14系以前の直ったバージョンは出ていない)

15系の人は、次のコマンドで上げます。

npm install next@15.5.28

16系の人は、次のコマンドで上げます。16.4.1より新しい16.4.2・16.4.3にも、同じ修正が入っています。

npm install next@16.4.3

上げたら、アプリを作り直して(ビルドして)配り直します。サーバーで動かしているときは、新しいバージョンで動いているか確認してください。

Next.jsのサポートの方針では、今サポートしているのは16系(Active LTS)と15系(Maintenance LTS)で、14系以前はサポート外です。14系以前のアプリは、15.5.28か16系に移ります。

直った脆弱性

内容 深刻度 対象
use cacheの関数が型付き配列(typed array)を返すときの、認証なしのRCE
GHSA-673q-mjm6-r5xr
Critical(CVSS 4.0で9.5) 16.0.0〜16.4.0
SVGを使うときの、画像の最適化(Image Optimization)での認証なしのRCE
GHSA-2464-fhr4-w9xw
Critical(CVSS 4.0で9.5) 10.0.0〜15.5.27
16.0.0〜16.4.0
Server Actionsを使うApp Routerの、サービス妨害
CVE-2026-94482、GHSA-p3m5-59mp-jv5r
High(CVSS 4.0で8.2) 13.0.0〜15.5.27
16.0.0〜16.4.0

2件目のGitHubのアドバイザリには、CVE番号が付いていません。Next.jsの発表にあるCVE-2026-96889は、原因になったライブラリ(SVGを読み込むlibrsvg)の脆弱性の番号です。

自分のアプリが当てはまるか

use cacheのRCE(16系だけ)

対象は、App RouterでCache Componentsを使い、use cache の関数が複数の型付き配列を返すアプリです。回避策はありません。Next.jsは、似た関数がなくても、すぐに上げるように勧めています。

15系は、この脆弱性の対象外です。

画像の最適化のRCE

対象は、glibcを使うLinuxでNext.jsを動かしているアプリです。画像の最適化で使うライブラリの、メモリの扱いの不具合が原因です。

すぐに上げられないときは、Next.jsが使う sharp を0.35系の0.35.5以上にするのが回避策です。Next.jsを直ったバージョンに上げたら、sharp のバージョンも確認してください。16.4.1以降は sharp を0.35系の0.35.5以上に指定しているため、直った sharp が入ります。15.5.28は0.34系も認めているので、sharp が0.34系のまま残ることがあります。

npm ls sharp

表示された sharp が0.35.5より前なら、0.35系の0.35.5以上にします。

Server Actionsのサービス妨害

対象は、App Routerで、Server Actionsを1つ以上使っているアプリです。細工したリクエストでCPUを大量に使われ、同じプロセスのほかのリクエストを処理できなくなります。回避策はありません。

Pages Routerだけのアプリと、Server Actionsを使っていないアプリは対象外です。

自分の環境を確かめる

プロジェクトのフォルダーで、次のコマンドを実行します。

npx next info

「Relevant Packages」の next: の行に、入っているNext.jsのバージョンが出ます。react や react-dom のバージョンも、ここで分かります。

CIやコンテナでビルドしているときは、ロックファイル(package-lock.jsonなど)のNext.jsのバージョンも新しくなっているかを見ます。

Next.jsを使わずにReactのServer Componentsを使っているとき

use cacheのRCEとServer Actionsのサービス妨害には、関係するReactのアドバイザリが出ています。ReactのServer Componentsの部品の不具合で、次の3つのパッケージの19.0.9・19.1.10・19.2.9・19.3.1で直っています。

react-server-dom-webpack
react-server-dom-parcel
react-server-dom-turbopack

Reactのコードをサーバーで動かしていないアプリ、Server Componentsに対応したフレームワークやバンドラーを使っていないアプリは、対象外です。

Node.jsも新しくする

Next.jsを動かすNode.jsにも、10月にセキュリティ更新が出ています。上げる先のバージョンは、Node.js 24.22.1・22.23.4・26.12.1のセキュリティ更新|直った脆弱性10件と上げ方の記事にあります。

よくある質問

9月30日のセキュリティ更新(16.3.8・15.5.27)を入れていれば大丈夫ですか?

大丈夫ではありません。今回の3件は、16.3.8・15.5.27のあとに直ったものです。Next.jsは、このうち2件の修正を、ほかのライブラリの調整を待つため9月の更新から先送りにしていました。

use cacheを使っていなくても上げる必要がありますか?

上げてください。画像の最適化とServer Actionsの脆弱性は、use cacheを使っていなくても対象になることがあります。15系はuse cacheのRCEの対象外ですが、ほかの2件の対象です。

Pages Routerだけのアプリでも上げる必要がありますか?

上げてください。Server Actionsのサービス妨害は対象外ですが、画像の最適化のRCEは、glibcを使うLinuxで動かしていれば対象です。

公式の発表と資料

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

社内エンジニアとして、SREとセキュリティの仕事をしています。サーバーの構築や運用、クラウド環境の設計にも関わってきました。趣味はゲームと漫画・アニメ。

コメント

コメントする

目次