Next.js、キャッシュおよびSVG処理における重大なRCE脆弱性を修正
Next.js 16.4.1 および 15.5.28 では、サーバーコンポーネントと画像処理に影響する2つの重大なリモートコード実行(RCE)脆弱性と1つのサービス拒否(DoS)欠陥を修正しました。
英語の原文から自動翻訳されました。
Vercel は 10 月 14 日、Next.js の緊急セキュリティアップデートをリリースし、2 つの重大なリモートコード実行(RCE)脆弱性と 1 つの高深刻度のサービス拒否(DoS)欠陥に対処しました。これらのパッチは Next.js バージョン 16.4.1 および 15.5.28 で提供されており、React Server Components、SVG 画像処理、または Server Actions を使用するアプリケーションを対象としています。現時点で悪用事例は報告されていませんが、これらの問題の深刻さから開発チームは即時に対応する必要があります。
何が起きたか
このアップデートは、Next.js アプリケーションを認証なしの攻撃にさらす 3 つの異なるセキュリティ問題を解決します。Vercel は両方の RCE 脆弱性に CVSS スコア 9.5 を割り当てており、特定の条件下では容易に悪用可能な重大な問題であることを示しています。最初の脆弱性は React Server Components 内に存在し、特に use cache 機能を使用するアプリに影響します。2 番目の問題は、SVG レンダリングのために sharp パッケージで使用されるオープンソースライブラリ librsvg のメモリ破損バグです。3 番目の問題は Server Actions に関連する DoS 脆弱性であり、攻撃者が細工したリクエストによってサーバーの CPU リソースを枯渇させることを可能にします。
これらの欠陥は幅広い Next.js バージョンに影響します。use cache を経由した RCE は Next.js 16.0.0 から 16.4.0 に影響します。SVG 関連の RCE はバージョン 10.0.0 から 15.5.27 および 16.0.0 から 16.4.0 に影響します。DoS 欠陥はバージョン 13.0.0 から 15.5.27 および 16.0.0 から 16.4.0 に及びます。Vercel は、具体的な構成が脆弱ではないと考えている場合でも、包括的な保護を確保するためにすべてのユーザーに最新の补丁リリースへのアップグレードを推奨しています。
リスクの程度はホスティング環境やアプリケーションの設定によって異なります。例えば、Netlify は自社のプラットフォームが image-optimizer コードパスを実行しないため、SVG 欠陥の影響が限定的であると述べています。しかし、同社もアップグレードを推奨しています。glibc ベースの Linux システムで動作するアプリケーションは、SVG 脆弱性に対して特にリスクが高いです。librsvg の根本的なメモリバグにより、攻撃者が提供するファイルを処理する際にリモートからトリガーされる可能性があるためです。
メカニズム
React Server Components の脆弱性は、use cache 関数が攻撃者制御値を含む複数の型付き配列を返す稀なケースで発生します。この問題は react-server-dom-webpack、react-server-dom-parcel、react-server-dom-turbopack パッケージに存在します。これらの条件が満たされると、サーバーは攻撃者から提供された任意のコードを実行する可能性があります。Vercel はこのシナリオを極めて稀だと説明していますが、潜在的な影響は重大であり、Next.js 16 ユーザー全員に対する普遍的なアップグレード推奨を正当化するものです。
SVG 脆弱性は librsvg のメモリバグ(CVE-2026-96889)に起因します。Next.js は画像処理パッケージ sharp を介してこのライブラリにアクセスします。デフォルトでは Next.js は SVG を最適化しませんが、dangerouslyAllowSVG 設定を有効にするか、ソーシャルプレビュー画像用に next/og 機能を使用すると、このリスクにさらされます。glibc ベースの Linux システム上で悪意のある SVG が処理されると、メモリ破損によりリモートコード実行が発生する可能性があります。これは 8 月以来 Next.js で発生している 3 番目の画像処理関連 RCE であり、複雑なネイティブ依存関係に伴うリスクを浮き彫りにしています。
DoS 脆弱性は、少なくとも 1 つの Server Action を定義している App Router アプリケーションに影響します。攻撃者は特別に細工したリクエストを送信することで、単一のサーバープロセスが CPU 容量の 100% を消費するように強制し、他の正当なリクエストを処理できなくさせます。これにより、その特定のプロセスに依存しているユーザーにとってアプリケーションは事実上オフラインになります。Pages Router アプリケーションや Server Action を使用していないアプリケーションはこの特定の欠陥の影響を受けません。
主要な詳細
- 修正済みバージョン: Next.js 16.4.1 および 15.5.28 ですべての 3 つの問題が解決されています。
- Sharp 依存関係: バージョン 16.4.1 では、パッチ適用済みの librsvg を含む
sharp0.35.5 が自動的に要求されます。バージョン 15.5.28 では古い脆弱なsharpバージョンが許容される可能性があり、手動での確認が必要です。 - Linux 特有性: SVG RCE は主に、Next.js が
sharpを介して SVG を処理する glibc ベースの Linux システムで悪用可能です。 - 一部の欠陥に CVE なし: 10 月 15 日時点では、
use cacheおよび Server Actions の勧告には CVE が割り当てられておらず、標準的な npm audit フィードにも表示されていませんでした。 - 回避策:
use cacheおよび Server Actions の欠陥に対する回避策はありません。SVG 問題については、即時アップグレードができない場合、ユーザーはsharpで SVG レンダリングをブロックできます。 - 過去のインシデント: これは 8 月(libheif)および 9 月(next/og)の類似した RCE 脆弱性に続くものであり、画像処理依存関係における脆弱性のパターンを示しています。
なぜ重要か
エンジニアリングチームにとって、このアップデートは現代のウェブフレームワークにおけるサプライチェーンセキュリティの脆さを強調しています。sharp やその依存関係などの画像処理ライブラリにおける RCE 脆弱性の再発は、ネイティブコード統合が高リスク領域のままであることを示唆しています。開発者はしばしば、高レベルのフレームワーク抽象化が低レベルのメモリエラーから保護してくれると仮定しますが、今回の事件は、専門的なスキャンツールなしでは検出が難しい重大な脆弱性を深い依存関係が導入し得ることを証明しています。
3 つのうち 2 つの欠陥に対する CVE の欠如は、自動化されたセキュリティ監視におけるギャップも浮き彫りにしています。多くのチームは脆弱な依存関係をフラグ付けするために npm audit や同様のツールに頼っています。これらの特定の勧告が標準フィードにすぐに反映されなかったため、自動化スキャナーのみ依赖于組織は use cache および Server Actions の修正の緊急性を見逃していた可能性があります。これは、自動化ツールみに頼るのではなく、公式フレームワークチャネルやセキュリティ速報に対するより積極的な監視アプローチが必要であることを意味します。
対応方法
- 直ちに Next.js 16.4.1 または 15.5.28 にアップグレードし、アプリケーションを再ビルドしてください。
- Next.js 15 を使用している場合は、
npm ls sharpを使用してsharpがバージョン 0.35.5 以降に更新されていることを手動で確認してください。 - アプリケーションが
dangerouslyAllowSVGまたはnext/ogを使用しているかチェックし、必須でない場合はこれらの機能を無効にすることを検討してください。 - Server Actions の DoS 脆弱性の悪用を示唆する可能性のある異常な CPU 使用率スパイクについてサーバーを監視してください。
- 依存関係スキャンパイプラインを確認し、まだ CVE が割り当てられていない勧告も捕捉できることを保証してください。
- 即時アップグレードが不可能な場合、画像欠陥に対する一時的な緩和策として
sharp.block({ operation: ["VipsForeignLoadSvg"] })を使用してsharp内の SVG 操作をブロックしてください。



