概要

Next.jsは10月14日、帯域外(out-of-band)の緊急セキュリティアップデートを公開し、v16.4.1(Active LTS)およびv15.5.28(Maintenance LTS)をリリースした。今回の更新では、未認証のリモートコード実行(RCE)につながる重大(Critical)な脆弱性2件と、サービス拒否(DoS)につながる深刻度の高い(High)脆弱性1件が修正されている。Next.jsは広く使われるReactフレームワークであるため影響範囲が大きく、該当する機能を使用していないアプリケーションを含め、早急なアップデートが呼びかけられている。今回の更新には、依存先であるアップストリームの修正待ちのため9月のセキュリティリリースから持ち越されていた2件の修正も含まれている。

修正された脆弱性

最も深刻なのは、App RouterでCache Componentsを使用するアプリケーションにおいて、use cache関数が複数の型付き配列(typed array)を返す際に発生する未認証RCEだ(GHSA-673q-mjm6-r5xr)。関連するReact側のアップストリーム脆弱性(GHSA-xqc2-xf4c-x3h3)に起因しており、既知の回避策は存在しないため、該当する関数を持たないアプリケーションであっても直ちにアップグレードすることが推奨されている。

2つ目は、SVGを扱う際の画像最適化APIにおける未認証RCE(CVE-2026-96889 / GHSA-2464-fhr4-w9xw)だ。これは画像最適化に使われるアップストリームライブラリのメモリ関連の脆弱性に起因し、glibcベースのLinux上でNext.jsを実行している場合にリモートコード実行につながる。暫定的な回避策として、Next.jsが利用するsharpのバージョンを0.35.5以降にすることが挙げられているが、Next.js自体をパッチ済みバージョンにアップグレードすれば、パッケージマネージャーが自動的に修正済みのsharpを導入するため、根本的な対策となる。

3つ目は、Server Actionを1つ以上使用するApp Routerアプリケーションを対象としたDoS脆弱性(GHSA-p3m5-59mp-jv5r、関連するReact側のGHSA-h3gv-c5rc-p453)だ。細工されたリクエストにより過剰なCPU使用が発生し、同一プロセス内の以降のリクエスト処理がブロックされる。Pages Routerを使用している、またはServer Actionsを使用していないアプリケーションはこの脆弱性の影響を受けない。

対応方法と背景

対応は該当バージョンへのアップグレードのみで、以下のコマンドで適用できる。

npm install next@15.5.28  # 15.5系向け
npm install next@16.4.1   # 16.4系向け

Next.jsは、VercelがHackerOneで運営するオープンソースバグバウンティプログラムを通じて研究者と連携し、セキュリティ確保に取り組んでいる。Next.jsはVercelの主導するReactフレームワークとして多数の本番環境で採用されており、特に未認証RCEは攻撃者が認証なしにサーバー側でコードを実行できる最も深刻な部類の脆弱性であるため、影響を受ける可能性のある全ての運用者に対して速やかなパッチ適用が強く求められる。