Node.js向けの部品「PromZard」に、入力を通じて任意のコードを実行される脆弱性が公表されました。CERT/CCの発表は2026年11月12日、国内のJVNでの公表は13日です。識別番号は CVE-2026-127109 です。CERT/CC・JVN

確認の要点は、PromZardが含まれているかに加え、外部の人が指定した「項目名」をPromZardへ渡す経路があるかです。Node.jsやnpmを使っていることだけでは、攻撃が成立するとは判断できません。

値ではなく、項目名がコードとして解釈される

PromZardは、質問への回答などから設定ファイル用のデータを組み立てる部品です。公式リポジトリでは、npm initで使われる部品と説明されています。PromZard公式

問題は、テンプレートへ渡す情報である「ctx」の項目名を、プログラムの一部として組み込む処理にあります。攻撃者がその項目名を操作できると、Node.jsのプロセスが持つ権限でコードを実行される可能性があります。テンプレートファイル自体を信頼できても、この経路が残ります。CVEの公式記録

説明用の例でいえば、「会社名」という項目に何を入力するかだけでなく、項目名そのものを利用者に自由に指定させる設計が確認対象です。実際に影響するかは、その入力がPromZardのctxまで届くかを調べる必要があります。

説明用の例。設定データの値ではなく項目名がctxからプログラムへ組み込まれるため、外部の人が項目名を操作できる経路を確認する。

図は入力項目の扱いを示す説明用の例です。

対象と、現時点の対策

CERT/CCは 4.0.0以下 を影響対象としています。11月14日時点で確認した告知には修正版が示されておらず、開発元の変更履歴の最新項目も4.0.0です。修正済みだと判断できる情報は確認していません。

CERT/CCは、ctxへ渡すデータを厳格に検証し、信頼できない情報源から任意の項目名を渡さないよう勧めています。本記事で確認した資料には実際の悪用事例の記載はありません。悪用がないことを保証するものではありません。CERT/CCの対策・公式変更履歴

開発担当者に確認する3点

事業者側では、開発会社や運用担当者に次の点を確認すると、対応範囲を絞れます。

  1. どこで使っているか。 直接入れた部品だけでなく、別の部品を通じて含まれるものも確認し、本番サービス・開発端末・自動処理のどこで動くかを整理する。
  2. 誰が項目名を決められるか。 外部から受け取る設定ファイルやリクエストなどがctxの項目名になる経路を調べる。固定された社内定義だけなのか、利用者が変えられるのかを区別する。
  3. 更新までの間に、その経路を止められるか。 許可する項目名を固定する、該当機能を一時停止するなど、利用状況に合う対応を検討する。

これは対応を整理するための確認項目です。個別の実装を調べず、入力チェックを追加しただけで解決したとは判断しないでください。外部入力が届く経路がある場合は、修正版待ちのままにせず、担当者に当面の対応と確認結果を求めることが重要です。

Node.jsや共通部品の役割は、Node.js・Brotliと部品の更新の解説も参考にしてください。