Next.jsを使うWebサイトや業務アプリを運営している方は、10月14日公開のセキュリティ更新を確認してください。認証を必要としないリモートコード実行につながる重大な問題2件と、サービスを応答できなくする問題1件に対し、Next.js 15.5.28と16.4.1が公開されました。
これはNext.js製のサイトが一斉に停止したという発表ではありません。攻撃を受ける前に、運営・開発担当者がアプリの依存関係と公開環境を更新する必要がある問題です。サイトを見るだけの利用者が、ブラウザーを再インストールして解決するものでもありません。
【要点】更新はファイルの変更だけで終わらせず、本番への反映まで確認します
- 15.5系の修正版は15.5.28、16.4系は16.4.1です。古い系列は移行に必要な互換性確認も行います。
- 対象機能はCache Components、画像処理、Server Actionsで異なります。1つが対象外でも、ほかの問題への確認は必要です。
- 本番だけでなく、インターネットからアクセスできるプレビューや別ブランチの公開先も確認してください。
発表元:Next.js公式の10月14日セキュリティ更新。現在起きているサービス停止は、システム障害・復旧状況の一覧で確認できます。
ADVERTISEMENT
3件の問題は、影響する機能と条件が違う
「Next.jsを使っているか」に加え、アプリの版、ルーティング方式、画像処理の実行環境を確認します。開発用PCで正常に表示できても、Linux上の本番サーバーに同じ条件がそろっている場合があります。
| 問題 | 主な影響条件 | 注意する点 |
|---|---|---|
| Cache Componentsのコード実行 | Next.js 16系のApp Routerで、複数の型付き配列を返すuse cache関数を利用 | 重大度はCritical。対象アプリに既知の回避策はありません |
| SVG画像処理のコード実行 | glibcベースのLinuxで、脆弱な画像処理ライブラリを使う場合 | 画像最適化の設定だけでなく、実際に使われるsharpの版も確認します |
| Server Actionsのサービス妨害 | App Routerで少なくとも1つのServer Actionを持つアプリ | CPUを過剰に消費し、同じプロセスの別リクエストも処理できなくなるおそれがあります |
Cache Components:似た処理が見当たらなくても更新を先送りしない
Cache Componentsは、計算結果などをキャッシュして再利用する仕組みです。今回の問題は、use cacheを指定した関数が複数の型付き配列を返す場合に、認証なしのコード実行につながるものです。公式勧告では16.0.0から16.4.0が影響する範囲、16.4.1が修正版とされています。
この問題には、影響を受けるアプリで使える既知の回避策が示されていません。Next.jsは、似た関数が見当たらない場合も直ちに更新するよう案内しています。担当者の目視だけで対象外と決めず、修正版の適用を進めてください。Cache Componentsの公式セキュリティ勧告。
画像最適化で使われる上流ライブラリのメモリ関連の問題は、glibcベースのLinux環境でコード実行につながるおそれがあります。識別番号はCVE-2026-96889です。公式は、この画像処理の問題に対する回避策として、Next.jsが利用するsharpを0.35.5以降にする方法を示しています。
ただし、sharpの更新は画像処理に対するものです。Cache ComponentsやServer Actionsの修正まで代替するわけではありません。Next.js本体の修正版を適用し、依存関係の固定ファイルとビルド結果も確認してください。画像最適化の公式セキュリティ勧告。
Server Actions:Pages Routerの対象外という説明は、この問題に限る
Server Actionsは、フォーム送信などを受けてサーバー側で処理する機能です。今回のサービス妨害は、App Routerでこの機能を持つアプリが対象です。公式の影響範囲は13.0.0~15.5.27と16.0.0~16.4.0で、修正版は15.5.28と16.4.1です。
Pages Routerを使うアプリやServer Actionsのないアプリは、このサービス妨害の対象外とされています。しかし、その説明を画像処理の問題にも当てはめて「更新不要」と判断することはできません。Server Actionsの公式セキュリティ勧告。
運営者が確認する順番:公開先を洗い出してから更新する
担当者に「最新版へ更新しました」と報告を受けても、どの公開先まで反映されたのかが分からなければ、古いアプリが残る可能性があります。制作会社に任せている場合も、公開URLと更新対象を一覧にして確認すると行き違いを減らせます。
- 公開中のアプリと担当者を確認する。会社のWebサイト、会員画面、社内ツール、キャンペーンページなど、Next.jsを使う公開先を挙げます。リポジトリが1つでも複数の環境へ配信していないか確認してください。
- 現在動いている版を調べる。package.jsonの指定だけでなく、lockファイル、ビルドログ、デプロイ記録から、実際に採用されたNext.jsと画像処理ライブラリの版を確認します。
- 利用中の系列に合う修正版へ更新する。公式が示す15.5.28または16.4.1を基準に、プロジェクトのパッケージ管理方法で依存関係を更新します。13・14系などから移る場合は、破壊的変更を含む移行の確認も必要です。
- ビルドと主要機能を検証する。ログイン、フォーム送信、画像表示、API連携など、そのアプリで業務上必要な操作を確認します。更新前の復旧手順も用意しつつ、脆弱な版へ戻したままにしない対応を決めておきます。
- 本番へ再デプロイし、稼働中の版を照合する。依存ファイルを変更しただけでは既存サーバーは更新されません。配信先ごとのデプロイ成功と、公開URLからの操作結果を確認してください。
複数のコンテナやサーバーを使う構成では、新旧の版が混在していないかも確認します。一部のURLだけ直して終えず、外部から到達できる別名ドメインや旧公開先が、どのデプロイを参照しているかを整理してください。
Netlifyでも更新が必要:機能ごとに影響が異なる
Netlifyも、Next.jsを15.5.28または16.4.1へ更新し、再デプロイするよう推奨しています。Cache Componentsの条件に該当するアプリは同基盤でも影響します。一方、next/imageによる画像配信はNetlify Image CDNが担当するため、同じ経路で関数内の脆弱な処理が実行されるわけではありません。
ただし、next/ogのImageResponseで信頼できない入力を画像化するアプリは別です。Netlifyは、この場合の影響を関数呼び出しのクラッシュと説明し、同環境ではコード実行ではないとしています。Server Actionsの問題も、サーバーレスの構成では別リクエストへの影響が限定される一方、攻撃によって関数の利用料金が増える可能性があります。
また、本番を更新しても、公開されたデプロイプレビューやブランチのデプロイに古い版が残る場合があります。Netlifyは、それらを手動で削除することも検討するよう案内しています。運用担当者は、レビューに必要な環境か、外部からアクセスできるかを確認し、不要なものを整理してください。Netlify公式:機能別の影響と公開デプロイへの対応。
すでに遅延・エラーが起きている場合の確認
この脆弱性の発表だけで、手元の障害の原因が攻撃だと決まるわけではありません。運営担当者は、症状が出始めた時刻、直前のデプロイ、CPUや関数実行回数の変化、アプリのエラーログを照合してください。ホスティング側の障害情報も合わせて調べます。
管理画面の操作に心当たりのない変更がある、通常と異なる実行が続いているなど侵害の疑いがある場合は、ログを保存して管理者・セキュリティ担当者へ連絡してください。修正版の適用は今後の悪用を防ぐための対応であり、過去の不正な変更や情報流出がなかったことの証明にはなりません。
利用者側で注文・送信が失敗した場合は、履歴や確認メールを調べてから再試行してください。表示がエラーでもサーバー側の処理が完了している場合があるため、同じ操作を連続して繰り返す前に、管理者へ結果を確認するのが安全です。
まとめ:更新対象と反映先の両方を確認する
10月14日のNext.js更新は、機能の異なる3件への対策です。画像を扱わない、Server Actionsを使わないといった1つの条件だけで、すべて対象外とは判断できません。運営者は利用中の系列と機能を確認し、修正版の適用、ビルド、本番と公開プレビューへの反映まで進めてください。
サービス全体の停止や復旧の続報はシステム障害まとめ、ほかの更新・不具合情報は速報・最新トラブルで確認できます。
超解決 第一編集部
疑問解決ポータル「超解決」の編集チーム。正確な検証と、現場視点での伝わりやすい解説を心がけています。
