Node.js ImageResponse Implementation Vulnerability Enables Remote Code Execution
2026/10/01 CyberSecurityNews — Next.js に存在する重大な脆弱性により、next/og パッケージの ImageResponse の Node.js 実装を使用するアプリケーション上で、リモート・コード実行が引き起こされる可能性がある。この GHSA-vcvr-r3jv-pc5j として識別されるこの問題は、Next.js 16.2.0 〜 16.3.5 に影響し、16.3.6 で修正されている。

この脆弱性は、アプリケーションによる動的な画像生成時に、攻撃者が制御する入力が SVG コンテンツ/SVG 属性/スタイルプロパティへ渡されることで発生する。一般的に、開発者は Open Graph 画像/ソーシャル・メディアのプレビュー画像/リクエスト時に生成される画像などを作成するために ImageResponse を使用する。そのため、これらの画像生成処理が影響を受ける可能性がある。
脆弱なアプリケーションにおいては、URL パラメータから値を読み取り、それを SVG 要素へ挿入する場合がある。たとえば、エンドポイントが外部のユーザーから value パラメータを受け取り、その値を SVG の <title> タグ内へ挿入するケースが考えられる。この値が安全に処理されない場合には、細工されたペイロードが画像レンダリング処理へ到達し、リモート・コード実行につながる可能性がある。
Node.js ImageResponse の脆弱性
GitHub のアドバイザリ (GHSA-vcvr-r3jv-pc5j) によると、このリスクは next/og ImageResponse の Node.js 実装に限定され、Edge ImageResponse 実装を使用するアプリケーションは影響を受けない。また、信頼できない入力を SVG マークアップ/属性/スタイルへ挿入していないアプリケーションも影響を受けない。この脆弱性は、レンダリング処理で使用される SVG 生成ライブラリ Satori の上流の問題に起因する。
Satori は、生成する SVG へ特定の値を挿入する前に適切なエスケープ処理を行っていないため、細工されたデータが SVG マークアップとして解釈される可能性がある。上流の Satori の脆弱性 CVE-2026-94545 (GHSA-wx4j-mvgx-mqwp) は、0.0.27 〜 0.33.4 に影響し、0.33.5 で修正されている。
GitHub は、この Next.js の問題を CVSS v4 で Critical と評価しており、アドバイザリによると、ネットワーク経由で悪用可能/攻撃の複雑性が低い/権限が不要/ユーザー操作が不要である。悪用に成功した場合には、脆弱なシステムと下流のシステムの双方で、機密性/完全性/可用性に影響が及ぶ可能性がある。
攻撃者の標的となり得るのは、クエリ文字列の値/投稿内容/プロフィール名/ページタイトルなどのユーザー提供データを処理する、外部公開された画像生成ルートである。Open Graph 画像のエンドポイントは、インターネットへ公開されている場合が多いため、開発者は外部入力を受け付けるすべての ImageResponse ルートを確認する必要がある。
影響を受けるのは、npm の next パッケージである。脆弱なバージョンは 16.2.0 〜 16.3.5 であり、バージョン 16.3.6 にセキュリティ修正が含まれる。この問題について GitHub は、脆弱なサードパーティ・コンポーネントへの依存を対象とする CWE-1395 に分類している。
組織には、Next.js 16.3.6 への速やかなアップグレードが推奨される。このアップデートには、脆弱なレンダリング処理に必要な修正が含まれている。直ちにアップグレードできないチームは、Node.js ImageResponse 実装で生成される SVG コンテンツ/属性/CSS スタイルに、攻撃者が制御するデータが到達しないことを確認する必要がある。
信頼できない文字列が依然としてマークアップとして解釈される場合には、入力検証だけでは十分ではない可能性があるため、開発者は独自の画像生成エンドポイント、特にリクエストから取得した値を使用するルートについても監査する必要がある。具体的には、URL/URL 検索パラメータ/ヘッダー/フォーム送信/CMS コンテンツ/ユーザープロフィールなどを確認する必要がある。
影響を受けるルートを Edge ImageResponse 実装へ切り替えることで、リスクを軽減できる可能性がある。ただし、組織に求められるのは、アーキテクチャを変更する前に、レンダリングの動作や導入環境との互換性をテストすることである。
GitHub のアドバイザリでは、この問題を報告したセキュリティ研究者 RaghavMaheshwari124/rafabd1 への謝辞が掲載されている。未認証でのリモート・コード実行の可能性があることから、影響を受ける Next.js の導入環境では、このアップデートを緊急性の高いパッチとして適用する必要がある。
Next.js や Satori に潜む特定の脆弱性 CVE-2026-94545 を解説した内容です。外部からの入力値を画像生成処理の SVG 部品に挿入する仕組みが問題の背景にあります。エスケープ不備に起因したデータ解釈ミス/未認証状態でのリモートコード実行/機密性や完全性の損失などの影響が生じます。対応策としては Next.js 16.3.6 への速やかな更新/Edge ImageResponse 実装への切り替え/入力経路の漏れなき検証/影響ルートの再監査などが挙げられます。各種システムを守るために適切なバージョンへの速やかなパッチ適用が強く求められます。
You must be logged in to post a comment.