Critical Next.js SVG Image Processing Vulnerability Could Enable Remote Code Execution
2026/10/15 gbhackers — Vercel が公開したのは、Next.js に存在する 2件の Critical なリモート・コード実行 (RCE) の脆弱性と、1件の深刻度 High のサービス拒否 (DoS) の脆弱性を修正する、定例外のセキュリティ・アップデートである。Vercel が公開したセキュリティ情報によると、今回のアップデートは、先週発表されたものであり、2026年9月のセキュリティ・リリースで漏れていた 2 件の修正も含むという。上流の依存ライブラリ側で対応が遅れたことで、これらの修正の公開が延期されていたという。

CVE-2026-96889:SVG 処理における認証不要の RCE
Critical は脆弱性 CVE-2026-96889 (GHSA-2464-fhr4-w9xw) は、Next.js の Image Optimization API に存在し、SVG 画像の処理を通じて悪用される可能性がある。
この脆弱性は、Next.js が画像最適化に使用する上流ライブラリに存在する、メモリ関連の欠陥である。Next.js が glibc ベースの Linux 環境で稼働している場合に、未認証の攻撃者によるリモート・コード実行 (RCE) が引き起こされる可能性がある。Vercel は、この脆弱性を深刻度 Critical (重大) と評価している。
この脆弱性は、多くの本番 Web サイトで公開されている画像最適化機能に存在し、認証を必要としないため、有効な認証情報を持たない脅威アクターであっても攻撃の試行が可能である。
なお、Vercel のアドバイザリにおいては、Alpine Linux などの musl ベースの環境は影響対象として明記されていない。ただし、影響対象として記載されていないことが、安全性を保証するわけではない。
運用担当者は、安全であると決めつけず、使用しているコンテナのベース・イメージや実行環境を確認する必要がある。
回避策として、Next.js が使用する sharp を、バージョン 0.35.5 以降へアップデートすることが推奨されている。ただし、Next.js 自体を修正済みリリースへアップグレードすれば、パッケージ・マネージャーによって修正済みの sharp が自動的に導入される。
現在、修正済みバージョンとして以下が提供されている。
| リリース系列 | 修正済みバージョン | サポート区分 |
|---|---|---|
| Next.js 16.4 | 16.4.1 | Active LTS |
| Next.js 15.5 | 15.5.28 | Maintenance LTS |
すべてのユーザーに対して、Vercel が強く推奨するのは、修正プログラムの速やかな適用である。
Cache Components の認証不要の RCE 脆弱性
2件目の深刻な脆弱性は、App Router と Cache Components を使用する Next.js アプリケーションに影響を及ぼすものだ。use cache 関数が複数の型付き配列 (TypedArray) を返す場合に、この脆弱性により認証不要のリモート・コード実行が引き起こされる可能性がある。
関連する React 側のセキュリティ・アドバイザリとして GHSA-xqc2-xf4c-x3h3 が公開されている。
Vercel によると、この脆弱性に対する既知の回避策は存在しない。そのため、アプリケーション内に該当するような関数が見つからない場合でも、直ちに修正済みバージョンへアップグレードすることが推奨されている。
Server Actions を利用するアプリケーションに DoS の恐れ
今回のアップデートでは、深刻度 High のサービス拒否 (DoS) の脆弱性も修正されている。この問題は、少なくとも 1つの Server Action を持つ App Router アプリケーションに影響する。
細工したリクエストを送信する攻撃者により、CPU 使用率が過剰に上昇する可能性がある。その結果、同じプロセス内で処理される他のリクエストがブロックされ、サービス拒否状態が発生する。
関連する React のセキュリティ・アドバイザリは GHSA-h3gv-c5rc-p453 である。
ただし、Pages Router を使用するアプリケーションや、Server Actions を使用していないアプリケーションは、この DoS 脆弱性の影響を受けない。これは今回の DoS 脆弱性についての条件であり、前述の 2 件の RCE 脆弱性には無関係のものとなる。
Next.js 15.5.28/16.4.1 への更新を推奨
管理者にとって必要なことは、利用している Next.js のリリース系列に応じて、修正済みバージョンへとアップデートすることだ。
Next.js 15.5 系列を使用している場合には、以下のコマンドを実行する。
npm install next@15.5.28
Next.js 16.4 系列を使用している場合には、以下のコマンドを実行する。
npm install next@16.4.1
セキュリティチームには、アップデートに加えて以下の対応が推奨される。
- 依存ライブラリの確認: ロックファイルを調査し、
sharpがバージョン 0.35.5 以降であることを確認する。 - 影響を受けるアプリケーションの特定: Cache Components や Server Actions を使用するアプリケーションを洗い出す。
- SVG リクエストの監視: 画像最適化 API のエンドポイントとログを確認し、不審な SVG リクエストがないか調査する。
- コンテナの再ビルド: 修正済みの依存ライブラリが実際に含まれるよう、コンテナを再ビルドする。
- 再デプロイの実施: 更新済みのコンテナやアプリケーションを再デプロイし、修正内容が本番環境へ反映されていることを確認する。
Next.js は、多くの本番環境で利用されている。そのため、広く使用される機能に認証不要の RCE 脆弱性が存在すると、技術的な詳細が公開/拡散された後に、攻撃者による悪用が急速に広がるリスクがある。
ただし、今回の Vercel のアドバイザリでは、これらの脆弱性が実際の攻撃で悪用されているとの記載はない。とは言え、実際の悪用が確認されていないことと、攻撃リスクが存在しないことは別であり、組織はパッチ適用を緊急の対応事項として扱う必要がある。
セキュリティ研究者は、HackerOne 上の Vercel Open Source Bug Bounty を通じて脆弱性を報告できる。また、セキュリティに関する問い合わせは、security@vercel.com で受け付けられている。
この記事は、Web アプリケーション・フレームワークである Next.js における重大なリモート・コード実行およびサービス拒否の脆弱性について解説するものです。画像最適化機能におけるメモリ処理不備やキャッシュ処理のロジック欠陥が背景に存在します。影響として、未認証の外部攻撃者によるサーバ上での任意コード実行/リソース枯渇に伴うサービス停止が生じる恐れがあります。対応策として、修正済みバージョンへの速やかな更新/依存ライブラリのバージョン確認/コンテナの再ビルドおよび再デプロイが求められます。
You must be logged in to post a comment.