本文へ移動
English version →
重大 9.5 急ぎ度: 至急

Next.js に認証不要のリモートコード実行、16.4.1 で修正

Next.js の App Router と Cache Component を使うアプリで、use cache 関数が複数の typed array を返す場合に、認証なしでリモートからコードを実行される弱点が見つかりました。修正版は 16.4.1 です。該当する関数がないアプリでも更新が勧められているため、next を使っているチームは早急に版を確認し、更新してください。

GHSA-673q-mjm6-r5xr 公開 生成 AI で作成
画像は生成 AI で作成したイメージです

急ぎ度: 至急

CVSS v4 は 9.5 の critical で、認証なしにリモートからコード実行につながり、回避策も知られておらず、該当関数がなくても即時の更新が勧められているためです。

関係があるか

Next.js の App Router で Cache Component を使い、use cache 関数を書いているアプリケーションが対象です。複数の typed array を返す use cache 関数があると該当しますが、該当しない場合でも更新が勧められています。

製品影響を受ける版直った版
next(npm パッケージ) App Router と Cache Component を使い、複数の typed array を返す use cache 関数があるアプリ。影響する版の範囲は公表内容に明記されていないため、ベンダーの告知で確認してください 16.4.1

確かめ方

  1. 1package.json とロックファイル(package-lock.json、yarn.lock、pnpm-lock.yaml)で、next の版が 16.4.1 未満でないか確認します。
  2. 2本番で動いているコンテナイメージやデプロイ済みの成果物に含まれる next の版も確認します。ソースだけ更新しても、再ビルドしていなければ古い版のままです。
  3. 3ソースコードで use cache を検索し、App Router と Cache Component を使っているか確認します。見つかった関数の戻り値に typed array(Uint8Array や Float32Array など)が複数含まれていないかも見ます。
  4. 4社内の複数のアプリや、委託先が開発したアプリにも同じ確認を広げます。

何が起きたか

Next.js は Web アプリケーションを作るための広く使われているフレームワークです。このたび、一部の機能の組み合わせで、インターネット越しに、ログインなしで、サーバー上のプログラムを実行される恐れのある弱点が公表されました。重大度は最高クラスの critical で、CVSS v4 のスコアは 9.5 です。

対象になるのは、App Router と Cache Component を使っているアプリで、use cache を付けた関数が複数の typed array を返す場合です。typed array は、画像や音声、バイナリなどの数値データを扱うために使われる配列です。

仕組みの詳細や原因となった処理は、告知では明らかにされていません。回避策も知られていません。そのため、修正版の 16.4.1 に更新することが唯一の対策です。告知では、該当する関数がないアプリでも更新するよう求められています。

攻撃の流れ

  1. 1

    対象を探す

    外部から到達できる Next.js のアプリが、Cache Component を使っているかが狙いどころになります。

  2. 2

    細工した通信

    ログインなしで、対象の `use cache` 関数に関わる通信を送ります。

  3. 3

    不正な処理

    複数の typed array を返す関数の処理で、想定外の動きが起きます。

  4. 4

    コード実行

    サーバー上で攻撃者の指定した処理が動く恐れがあります。

公開されている情報をもとにした流れの例です。

どう悪用されるか

悪用に認証は必要ありません。ネットワーク経由で到達できるアプリが対象で、アプリの前提となる条件は、App Router と Cache Component を使い、複数の typed array を返す use cache 関数があることです。利用者の操作が必要かどうかは公表されていません。

悪用された場合、サーバー上でコードを実行される恐れがあります。アプリが扱う顧客情報や環境変数に置いた認証情報の漏えい、データの改ざん、サーバーの踏み台化など、広い被害につながり得ます。ただし、実際の被害や攻撃の確認については公表されていません。KEV(米国 CISA の悪用確認済み脆弱性一覧)への掲載や、悪用される見込みを示す EPSS の値も、現時点で確認できていません。

今すぐやること

  1. 1

    使っている next の版を確認する

    開発環境だけでなく、本番にデプロイされている版も確認します。16.4.1 未満であれば更新の対象です。

    npm ls next
  2. 2

    next を 16.4.1 以降に更新する

    package.json とロックファイルを更新し、動作確認のうえ早急に本番へ反映します。該当する use cache 関数がないアプリも、告知に従って更新します。

  3. 3

    再ビルドして再デプロイする

    コンテナイメージや CI のキャッシュに古い next が残っていないか確認し、更新後の成果物が本番で動いていることを確かめます。

  4. 4

    対象アプリの棚卸しをする

    社内外のチームが管理する Next.js アプリを洗い出し、インターネットに公開されているものから優先して対応します。ホスティングサービスを利用している場合は、事業者の告知も確認します。

  5. 5

    更新前に公開されていたアプリのログを見直す

    不審な通信やサーバーの異常な挙動がなかったか確認します。この弱点の痕跡の見つけ方は公表されていないため、通常の侵害調査と同じ観点で見ます。

背景

Next.js はサーバー側でも画面の生成やデータの取得を行うため、一般的な Web 画面の部品とは違い、アプリの弱点がそのままサーバーの乗っ取りにつながり得ます。App Router や use cache は、描画結果やデータを再利用して表示を速くするための仕組みで、多くのアプリで業務の中心的なページを支えています。

サーバー側でデータを受け渡したり復元したりする処理の弱点は、これまでも他のフレームワークや言語で、認証なしのリモートコード実行という深刻な問題になってきました。今回の弱点の原因の詳細は告知に書かれていませんが、フレームワーク本体の問題は自社のコードを直しても防げないため、更新の遅れがそのまま露出期間になります。

よくある質問

Q.`use cache` も typed array も使っていないので、更新しなくてよいですか。
A.更新してください。告知では、類似の関数がないアプリでも直ちにアップグレードするよう求められています。回避策も知られていません。
Q.Pages Router だけを使っているアプリも影響を受けますか。
A.告知が挙げている条件は、App Router と Cache Component を使うアプリです。Pages Router だけのアプリが影響を受けるかは明記されていませんが、同じ next パッケージなので、更新しておくのが安全です。
Q.すでに攻撃されているのですか。
A.実際の悪用が確認されているかどうかは、現時点で公表されていません。ただし、認証不要で影響が大きい弱点なので、悪用の報告を待たずに更新するのが妥当です。
Q.WAF で防げますか。
A.WAF で防げるかどうかは公表されていません。回避策としては頼らず、版の更新を優先してください。

まだ分かっていないこと

  • 影響を受ける版の範囲(どの版から該当するのか)は、告知の概要では示されていません。Next.js の公式アドバイザリで確認してください。
  • 実際の攻撃での悪用の有無、攻撃を見つけるための痕跡、具体的な原因の詳細は公表されていません。
  • CVE 番号は、現時点で確認できていません。

この記事は、取得元の公開情報をもとに生成 AI で作成しています。誤りを含むことがあります。対応を決める前に、下の原文と参照先を確認してください。

影響パッケージ

種類パッケージ影響を受ける版直った版
npm next
16.0.0 以上 16.4.1 未満
16.4.1
原文の説明 取得元が公開している説明をそのまま載せています (多くは英語)。

Impact

A vulnerability in applications using App router with Cache Component can lead to remote code execution. The application needs to have a use cache function that returns multiple typed arrays.

Workaround

There is no known workaround for affected applications with such use cache functions. You should upgrade immediately even if your application does not have similar functions.

出典: GitHub Repository Security Advisories (Game のスタック) GitHub Advisory OSV

参照URL

当サイトでは、アクセス解析と広告の効果測定のために Cookie を使います。株式会社Game のサイト共通の設定です。 詳しく