セキュリティ Next.jsの緊急パッチ、CVSS9.5の「未クリック実行」はなぜサイト運営者を直撃するのか。CVE-2026-94545の中身を確かめる Vercelは2026年9月22日、Webフレームワーク「Next.js」の16.2.0〜16.3.5に、リモートでコードを実行されうる緊急の脆弱性を確認したと発表した。修正版は16.3.6
まず初めに
SNS映えする「共有用サムネイル画像」を自動で作ってくれる便利機能のおかげで、世界中のブログや通販サイトのOGP画像は今日も量産されている。ところがその裏側の仕組みに、外部から命令を送り込める穴が見つかった。しかも深刔度は10点満点中9.5点、ほぼ満点の「緊急」判定である。サムネイル画像ごときにサーバーの中身を明け渡すのは、さすがに割に合わない取引だ。世界中の開発者が今夜、静かにpackage.jsonのバージョン番号とにらめっこしているはずである。※個人の感想です
生成AIによるイメージ。実物や実際の画面ではありません。
何が起きているのか
Webアプリ開発フレームワーク「Next.js」を開発するVercelは、2026年9月22日、GitHub上のセキュリティアドバイザリ(GHSA-vcvr-r3jv-pc5j)を通じて、管理番号CVE-2026-94545の脆弱性を公式に発表しました。深刻度は「Critical(緊急)」、共通脆弱性評価システムCVSSしーぶいえすえす のスコアは10点満点中9.5点と、ほぼ最高値です。影響を受けるバージョンはNext.js 16.2.0以上16.3.6未満で、修正版はバージョン16.3.6です。Next.js 15系はこの脆弱性の対象外であることも、あわせて確認されています。
問題の所在は、記事のタイトルなどからSNS共有用の画像(いわゆるOGP画像)を動的に生成できる機能「next/og」が提供するImageResponseという仕組みです。この機能は内部で、HTMLやCSSに似た記法をSVG画像に変換するオープンソースのライブラリー「Satori」を利用しています。今回の脆弱性は、このSatori側のSVGエスケープ処理(記号や特殊文字を安全な形に変換する処理)が不十分だったことに起因し、URLのクエリパラメータのように外部から制御できる値を、アプリケーション側がそのままSVGの内容・属性・スタイルへ渡してしまうと、サーバー上で任意のコードを実行される恐れがあるとされています。
なお、ImageResponseには「Node.jsランタイム版」と「Edgeランタイム版」の2種類があり、今回の脆弱性が影響するのはNode.jsランタイム版のみです。Next.jsはこのNode.jsランタイムを既定(デフォルト)の実行環境として使う設計になっているため、開発者が明示的にEdgeランタイムを指定していない限り、Node.jsランタイム版が使われていることになります。脆弱性はセキュリティ研究者のRaghavMaheshwari124氏、rafabd1氏(いずれもGitHub上のアカウント名)によって報告されました。
なぜ重要なのか
Next.jsは、Webサイト構築で広く使われるJavaScriptライブラリー「React」を土台にした人気の高いフレームワークで、企業のコーポレートサイトからニュースメディア、ECサイトまで、数多くのWebサービスの開発に使われています。next/ogのようなOGP画像自動生成機能は、ブログ記事や商品ページを作るたびに手作業で画像を用意する手間を省けるため、実際の開発現場で広く使われている機能の一つです。
今回の脆弱性が重要なのは、被害の大きさが「情報の閲覧」や「一部機能の停止」にとどまらず、攻撃者がサーバー上で任意のプログラムを実行できてしまう「リモートコード実行りもーとこーどじっこう (RCE )」に分類される点です。RCEが成立すると、攻撃者はそのサーバーに保存されたデータの窃取や書き換え、他のシステムへの侵入の足がかりとして悪用するなど、被害の範囲を大きく広げられる可能性があります。CVSSスコアが10点満点中9.5点と最高水準に近いのは、攻撃の実行しやすさと、成功した場合の被害の大きさの両方が高く評価されているためです。
私たちへの影響
この脆弱性は、Next.jsを使ってWebサイトやサービスを開発・運営している事業者・開発者に直接関わるものです。一般の利用者が自分のパソコンやスマートフォンを操作しているだけで直接被害を受けるものではありません。ただし、今回確認した出典の範囲では、実際にこの脆弱性が悪用された形跡が確認されたという情報はなく、あくまで脆弱性の存在と修正が公表された段階です。
一方で、この脆弱性を突かれたWebサイトが乗っ取られた場合、そのサイトを訪れた利用者が偽の情報を表示されたり、別の攻撃へ誘導されたりする二次被害につながる可能性は否定できません。Next.jsを使ってサイトを運営している事業者・開発者は、next/ogのImageResponse機能(特にNode.jsランタイム版)を使っているかどうかを確認し、該当する場合はできるだけ早くバージョン16.3.6以上へアップグレードすることが推奨されます。すぐにアップグレードできない場合の回避策として、Vercelのアドバイザリでは、URLのクエリパラメータなど外部から制御できる値を、SVG画像の内容・属性・スタイルへ渡さないようにすることが挙げられています。
初心者が知っておくべきこと
「OGP画像」とは、X(旧Twitter)やLINE、Facebookなどでリンクを共有したときに、自動的に表示されるサムネイル画像のことです。「Open Graph Protocol」というWebページの情報をSNS向けに伝えるための共通規格に基づいており、記事のタイトルやテーマに合わせて画像を自動生成する仕組みは、多くのニュースサイトやブログで使われています。
「リモートコード実行(RCE)」とは、本来はその権限を持たない攻撃者が、インターネット経由で対象のサーバー上に、任意のプログラム(コード)を実行させられてしまう状態を指します。セキュリティ上の脆弱性の中でも特に深刻とされる分類の一つで、悪用されると被害の範囲をコントロールしにくくなります。
IT Postの見方――便利機能の穴を1日足らずで塞いだ対応は立派、だが穴の中身は笑えない
IT Postでは、GitHub経由での脆弱性報告(責任ある開示)を受けてから、丸1日と経たないうちに修正版を公開したVercelの対応スピードは、素直に評価できると考えます。CVSS9.5という数字を見た開発者が青ざめる前に、逃げ道(修正版)をちゃんと用意しておいた形です。とはいえ、「記事のサムネイル画像を自動で作る」程度の便利機能のために、サーバーを丸ごと乗っ取られかねない穴が開いていたという事実は、笑って済ませられる話ではありません。便利な自動化機能ほど、外部からの入力を疑わずに素通しさせがちで、そこが弱点になる——今回もまさにその典型でした。IT Postでは、フレームワークが提供する「お手軽機能」を採用する開発者ほど、その裏側で何が起きているかを一度は疑ってかかるくらいがちょうどいいと考えます。※個人の感想です
今後どうなりそうか
今回確認した出典の範囲では、この脆弱性が実際に悪用されたという報告はまだありませんが、脆弱性の内容とCVSSスコアが公になったことで、今後、悪用を試みる攻撃コードが出回る可能性は否定できません。Next.jsを使ってサイトを運営している事業者・開発者は、バージョン16.3.6へのアップグレードを急ぐことが望まれます。IT Postでは、この脆弱性をめぐる実際の悪用事例など、新しい情報が確認され次第あらためて取り上げます。