WordPressプラグイン「Ninja Forms」にXSSの脆弱性(CVE-2026-109997)

CVSS 7.2 HIGH 未ログインで悪用可能

対象プラグイン Ninja Forms (Ninja Forms – Contact Form Builder with Calculators, Quizzes, Signatures & AI Form Builder)
有効インストール約 500,000 件
影響バージョン3.15.5 以下
修正版3.15.6
CVECVE-2026-109997
種類XSS(Improper Neutralization of Input During Web Page Generation)
悪用される確率(EPSS)0.44%(全脆弱性の上位 62%)
公表2026年10月31日 当サイト掲載: 2026年11月2日 12:20

何が起きるか

Ninja Forms 3.15.5以前では、ログインしていない第三者がフォーム送信を通じて不正なスクリプトをサイト内に保存できます。管理者などがそのページを開くとスクリプトが実行され、乗っ取りや改ざんにつながるおそれがあります。

想定される被害と条件

  • 管理者が送信データ一覧などの該当ページを開くと、仕込まれたスクリプトが実行されるおそれがある
  • 管理者の権限を悪用され、不正な管理者ユーザーの追加や設定変更、サイトの改ざんが行われる可能性がある
  • 訪問者が偽サイトへ誘導されたり、入力情報を盗まれたりする可能性がある
  • 攻撃にログインは不要で、Ninja Formsのフォームが公開されているサイトが主な対象となる

今日やること

Ninja Formsを3.15.6以上に今すぐ更新し、更新できない場合はプラグインの停止・削除を検討してください。

すぐに更新できない場合

すぐに更新できない場合は、Ninja Formsを一時的に停止するか、フォームを掲載しているページを非公開にしてください。あわせてWAF(Wordfenceなど)を有効にし、ルールを最新の状態にしてください。

更新後に確認すること

  • 管理画面「Ninja Forms」→「Submissions(送信データ)」で、不自然な記号や「script」などの文字列を含む送信がないか確認する
  • 「ユーザー」一覧で、身に覚えのない管理者アカウントが追加されていないか確認する
  • 投稿・固定ページ・ウィジェットに、知らないリンクやコードが追加されていないか確認する
  • 不審な点が見つかった場合は、全管理者のパスワードを変更し、ログイン中のセッションを無効化する

不審な投稿・ユーザー・ファイルが見つかった場合は、専門家への相談をおすすめします。

Ninja Forms の現在の情報 (WordPress.org、2026-11-02 取得)

最新版3.15.7 修正版を含む
対応 WordPress6.9 以上(検証済み 7.1.4)
最終更新2026-10-26 1:04pm GMT
有効インストール500,000+
リンクWordPress.org のページ 公式サイト

技術的な詳細(修正差分の解析)

修正前後のコード(3.15.5 → 3.15.6)を WordPress.org から取得して差分を解析しました。特定の確度: 中。攻撃に使える手順は記載していません。

原因となった処理

  • フォーム送信を処理する AJAX コントローラ(includes/AJAX/Controllers/Submission.php の process())が、送信データ formData.extra の中身をそのまま受け入れ、サブミッションのメタデータとして保存していた。
  • extra には本来サーバー側だけが生成する予約キー(calculations、product_fields)があるが、クライアントから同じ名前のキーが送られてきても除外も検証もしていなかった。このためサーバー生成データの偽装・上書きが可能だった。
  • 保存された extra データ(特に計算結果や商品フィールドの情報)は管理画面のサブミッション表示で描画される。入力時の無害化と出力時のエスケープがどちらも不十分だったため、未認証の送信者が混入させた HTML/スクリプトが、管理者の閲覧時にブラウザで実行され得た(Stored XSS)。
  • 説明文によると、nf_ajax_submit エンドポイントは nonce 検証に失敗した要求者にも有効な nonce を返していた。そのため nonce による防御が実質的に機能せず、未認証の単一リクエストで悪用が成立し得た(この部分は省略された差分内にあるとみられ、提示範囲では確認できない)。
  • 関連する強化として、成功メッセージやフィールド初期値のマージタグ置換で、代入値に含まれるショートコード括弧が無害化されていなかった。このため送信値が do_shortcode() で解釈される余地があった(MergeTags.php、Render.php)。

被害が起きる前提条件

  • Ninja Forms 3.15.5 以前が有効で、公開ページにフォームを設置している(送信エンドポイント nf_ajax_submit は未認証で利用できる)。
  • 攻撃者側にログインや特別な権限は不要。悪意あるデータを含むサブミッションが保存されるだけで成立する。
  • 管理者など権限のあるユーザーが、管理画面で該当サブミッションを閲覧すると、管理者セッションの権限でスクリプトが実行される(CVSS の Scope Changed)。

修正版での変更

  • Submission.php に scrubReservedExtraKeys() と getReservedExtraKeys() が追加された。処理の冒頭で、クライアントが送った extra のうち予約キー(calculations、product_fields)を破棄する。キーは保存時と同じ形(wp_unslash 後)で比較し、新規送信・再開送信の両方に適用される。予約キーはフィルタ ninja_forms_reserved_extra_keys で拡張できる。
  • MergeTags.php で use_safe フラグの判定が見直された。action_replace は、オブジェクト種別ではなくアクションの type だけで email / successmessage を判定し、エスケープ済みの値を使うようになった。成功メッセージと初期値に代入される値は、[ と ] を実体参照化してショートコードとして解釈されないようにした。
  • 初期値のショートコード処理は WPN_Helper::process_default_value_shortcodes() に一本化された(Render.php、Repeater.php、Helper.php)。
  • サイト運営者の対応:速やかに 3.15.6 以降へ更新し、更新前に保存された不審なサブミッションがないか確認する。

主な修正ファイル: includes/AJAX/Controllers/Submission.php, includes/Abstracts/MergeTags.php, includes/Display/Render.php, includes/Helper.php, includes/Fields/Repeater.php

このプラグイン、自分のサイトにも入っている? URL を入れるだけの無料チェック →

原文(Wordfence Intelligence)

The Ninja Forms – Contact Form Builder with Calculators, Quizzes, Signatures & AI Form Builder plugin for WordPress is vulnerable to Stored Cross-Site Scripting via the ‘formData.extra’ parameter in all versions up to, and including, 3.15.5 due to insufficient input sanitization and output escaping. This makes it possible for unauthenticated attackers to inject arbitrary web scripts in pages that will execute whenever a user accesses an injected page. The nf_ajax_submit endpoint issues a valid nonce to any requester on failure, effectively neutralizing the nonce check and making exploitation trivially achievable in a single unauthenticated request.

参考リンク

本ページの作成について: 上記の出典データをもとに、「何が起きるか」「今日やること」「更新後に確認すること」などの日本語解説は生成 AI が作成し、サイトの主治医が随時確認しています。誤りに気づかれた場合はお問い合わせください。

「Ninja Forms」の他の脆弱性

「Ninja Forms」の脆弱性一覧 →

最近公表された深刻度の高い脆弱性

脆弱性一覧 →

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!
目次