トップ/記事一覧/Ninja Formsの脆弱性7件、決済0円化も。60万サイトは3.15.0へ
ninja-forms-cve-cover-ja-update

Ninja Formsの脆弱性7件、決済0円化も。60万サイトは3.15.0へ

世界で60万サイト超が使うWordPressのフォーム作成プラグイン「Ninja Forms」に、危険度9.3の脆弱性が2件見つかりました。CVE-2026-65048はログイン不要でフォーム送信から管理画面に不正スクリプトを仕込み管理者を乗っ取る恐れ、CVE-2026-65049は全フォームデータの一括削除につながる恐れがあります。修正版3.14.9以降への更新方法を解説します。

ニュース2026年7月22日公開最終更新 2026年8月14日
目次
この記事のポイント

世界で60万サイト超が使うWordPressのフォーム作成プラグイン「Ninja Forms」に、危険度9.3の脆弱性が2件見つかりました。CVE-2026-65048はログイン不要でフォーム送信から管理画面に不正スクリプトを仕込み管理者を乗っ取る恐れ、CVE-2026-65049は全フォームデータの一括削除につながる恐れがあります。修正版3.14.9以降への更新方法を解説します。

WordPressのフォーム作成プラグイン「Ninja Forms(ニンジャフォームズ)」には、2026年7月から8月にかけて7件の脆弱性が公表されました。ログイン不要で管理者を乗っ取られるもの、決済金額を0円に書き換えられるものが含まれます。利用サイトは世界で60万を超えます。

いま入れるべきは3.15.0(2026年8月12日公開)です。途中で「3.14.9で直った」「3.14.10なら大丈夫」と案内された時期がありましたが、どちらも現在は不十分です。3.14.12にはCVE番号の付いていないデータベース関連の修正がさらに入っており、最新版まで上げるのがいちばん確実です。

  • 2026年7月〜8月に公表された脆弱性は7件。うち最も重いのは危険度9.3の CVE-2026-65048(ログイン不要で管理者乗っ取りにつながる恐れ)
  • 金銭に直結するのは CVE-2026-65052。フォームの計算結果を書き換えて支払い金額を0円にできる
  • 7件を全部ふさぐには 3.14.10以上が必要。ただし3.14.12にCVE未採番の追加修正があるため、3.15.0へ上げるのが確実
  • 実際に攻撃された報告はなく、米政府CISAの悪用リストにも未登録。急がされる状況ではないが、放置する理由もない

どのバージョンなら安全なのか

いま使っているバージョンは、WordPress管理画面の「プラグイン」一覧で確認できます。その番号を下の表と照らし合わせてください。

いまのバージョン残っている穴やること
3.14.8以前7件すべて
(管理者乗っ取り・決済改ざんを含む)
3.15.0へ更新
3.14.92件
(SQL関連とショートコード実行)
3.15.0へ更新
3.14.10 / 3.14.11公表済みのCVEは
なし
3.15.0へ更新
(追加のSQL修正のため)
3.14.12なし3.15.0へ更新
(機能追加のみ)
3.15.0なし対応不要

分かれ目は3.14.9で止まっているかどうかです。7月下旬に「3.14.9へ更新を」という案内が各所で出たため、そこで止めたまま安心してしまっている運用者が一定数いるはずです。3.14.9には、その後に見つかった脆弱性が2件残っています

3.14.10と3.14.11なら、公表されているCVEはすべてふさがっています。ただし3.14.12の更新履歴に「SQLの問い合わせ処理の強化」というセキュリティ修正が記載されており、こちらにはCVE番号も詳しい説明も付いていません。中身が分からないものを残す理由はないので、最新版まで上げてしまうのが手っ取り早い判断です。

なお最新の3.15.0では、自然言語の指示からフォームを自動生成する「AI Form Builder」という機能が追加されています。セキュリティ修正は含まれていませんが、更新をためらう理由になるような変更でもありません。

公表されている7件の一覧

危険度は、脆弱性の深刻さを0から10で表す共通指標(CVSS)です。評価基準に新旧2つの版があり、同じ脆弱性でも数字が変わることがあるため、両方を併記しました。

CVE番号何ができてしまうか危険度
(新版/旧版)
攻撃の前提修正版
CVE-2026
-65048
フォーム送信から
管理者を乗っ取る
9.39.3ログイン不要3.14.9
CVE-2026
-65052
支払い金額を
0円に書き換える
8.7/7.5ログイン不要3.14.9
CVE-2026
-65049
全サイトのフォームデータを
一括削除する
8.4/9.3サブサイトの
管理者権限
3.14.9
CVE-2026
-65050
集めた送信データを
訪問者に見せてしまう
7.1/6.5投稿者権限3.14.9
CVE-2026
-65051
入力チェックを全部素通りする
(画像認証も含む)
6.9/6.5ログイン不要3.14.9
CVE-2026
-15663
データベースに
不正な命令を混ぜる
―/4.9管理者権限3.14.10
CVE-2026
-15256
URLに書いた命令を
サイトに実行させる
―/4.8ログイン不要
(条件あり)
3.14.10

上の5件は2026年7月21日に、CVE-2026-15663は7月24日に、CVE-2026-15256は8月6日に公表されました。公表の順番と修正の順番が一致していないのがこの件のややこしいところで、最後の1件は「3.14.10ですでに直っていた問題に、3週間近く経ってから番号が付いた」という形です。

なお、7月21日公表の5件について、修正版を3.14.10と記載している情報源もあります。公的なデータベースの記録では3.14.9が修正版とされていますが、この食い違い自体が「どこまで上げれば足りるのか」を分かりにくくしています。どちらが正しいかを気にしなくて済むのが、最新版まで上げてしまう利点です

誰が、何のために狙うのか

この7件のうち、外から誰でも試せるものを狙うのは、古いNinja Formsが入ったサイトを機械的に探し回り、問い合わせフォームに細工した文字列を送りつける相手です。有名サイトを選んで狙うわけではありません。「お問い合わせ」や「資料請求」のフォームを置いている中小企業のサイトも個人のサイトも、同じ条件で引っかかります。

彼らがすることは、大きく2つに分かれます。ひとつは送信内容に仕込んだプログラムを、運営者が管理画面を開いた瞬間に動かすこと。もうひとつは、送信する金額そのものを書き換えて、支払わずに申し込みを通すことです。前者は乗っ取りへ、後者はそのまま売上の消失へつながります。

被害はサイトの持ち主だけの話では終わりません。乗っ取られたサイトは、訪問者を偽サイトへ飛ばす踏み台にされたり、入力された個人情報を横取りする仕掛けを埋め込まれたりします。フォームに書き込まれた氏名・メールアドレス・相談内容は、送った本人にとっては他人に見られたくない情報です。運営する側から見れば、蓄積した申し込み記録が消えるリスクもあります。WordPressは本体側でもサイト乗っ取りにつながる脆弱性が見つかっており、プラグインだけ直しても片手落ちになります。

影響が大きい3件を詳しく

CVE-2026-65048: フォームに仕込んだプログラムが、管理画面で動く

7件の中でいちばん重い、危険度9.3の脆弱性です。問題があったのは「繰り返し入力欄(Repeatable Fieldset)」という、同じ項目を何度も入力できる機能でした。送信された各入力欄の順番を扱う内部処理が、数字であることを確かめずに任意の文字列を受け入れてしまい、その値を管理画面のHTMLへそのまま埋め込んでいました。

これは「格納型クロスサイトスクリプティング」と呼ばれる種類の欠陥です。攻撃者が送り込んだプログラムがサーバー側に保存され、後からその内容を画面に出した人のブラウザで勝手に動いてしまう、という攻撃を指します。今回はログインしていない外部の人物がフォームを送信するだけで仕込めて、運営者が「届いた問い合わせを確認する」という日常の操作をした瞬間に、運営者の権限で動きます。動いてしまえば、管理者のログイン状態を乗っ取る、新しい管理者アカウントを勝手に作る、サイトに不正なプログラムを設置する、といったところまで進み得ます。

修正版は3.14.9です。発見者はAisle Research の Pavel Kohout 氏で、7月21日に公表された5件はすべて同氏の報告によるものです。

CVE-2026-65052: 支払う金額を0円にして申し込みが通る

実害が想像しやすいのがこちらです。Ninja Formsには、選んだ項目に応じて合計金額を計算する機能があり、決済プラグインと組み合わせて申し込みフォームや簡易な注文フォームとして使われます。この金額を算出する内部処理が、想定外の値を受け取ったときにエラーで止まらず、そのまま処理を続けてしまう作りでした。安全側ではなく通す側に倒れる、いわゆるフェイルオープンです。

結果として、ログインしていない相手が送信内容を細工するだけで、支払うべき金額を書き換えられます。金額を0円にして注文を通すこともでき、サーバー側で正しい価格に直す仕組みがありません。Ninja Formsで有料の申し込み、物販、寄付の受付をしているサイトにとっては、この1件だけでも更新の理由になります。危険度は新版の基準で8.7、旧版で7.5です。修正版は3.14.9です。

CVE-2026-65049: 全サイトのフォームデータが一括で消える

複数のサイトを1つのWordPressでまとめて運用する「マルチサイト」構成で問題になります。本来、ネットワーク全体に関わる操作は最上位の管理者だけに許されるべきですが、Ninja Formsの権限チェックが個々のサイト単位の権限しか見ていませんでした。そのため、1つのサブサイトの管理者にすぎない相手が、細工したリクエストを送るだけでネットワーク上の全サイトのNinja Formsデータを一括削除できてしまいます。

フォームの定義も、これまで蓄積してきた問い合わせや申し込みの記録も、まとめて失われる恐れがあります。危険度は旧版の基準で9.3、新版では8.4です。攻撃にサブサイト管理者の権限が要る分、新版では評価がやや下がりますが、やることは変わりません。修正版は3.14.9です。

3.14.9では直っていない2件

ここが、この件でいちばん取りこぼされやすい部分です。「3.14.9へ更新を」という当時の案内に従っただけでは、2件が残ります。どちらも修正版は3.14.10です。

CVE-2026-15663: 読み込み機能からデータベースを叩ける

フォームの定義ファイルを読み込むインポート機能で、設定項目のキー名がデータベースへの問い合わせ文にそのまま渡ってしまう欠陥です。SQLインジェクションと呼ばれる、データベースへの命令文に不正な文字列を混ぜ込んで、本来見えないデータを引き出したり書き換えたりする攻撃にあたります。3.14.9を含むそれ以前のすべてのバージョンが対象でした。

ただし、この攻撃には管理者の権限が必要です。外部の誰かが単独で仕掛けられるものではないため、危険度は4.9にとどまります。管理者アカウントが他の欠陥やパスワード流出ですでに奪われている場合に、被害を広げる二の矢として使われる位置づけです。

CVE-2026-15256: URLに書いた命令をサイトに実行させる

こちらは2026年8月6日に番号が付いたばかりの脆弱性です。3.14.10の更新履歴には以前から「無認証のショートコード実行のブロック」という記載があり、何かが直されたことだけは分かっていましたが、詳細が公表されるまで3週間近くかかりました。

ショートコードとは、記事や固定ページに [ninja_form id=1] のような短い記述を書くと、対応する機能が呼び出されるWordPressの仕組みです。本来はサイトの編集権限を持つ人だけが使えるはずのものです。

問題になるのは、URLの末尾に付けた文字列でフォームの初期値を埋める設定にしている場合です。この設定のフォームが公開ページに置かれていると、URLに書いた文字列がショートコードとして処理されてしまい、ログインしていない相手がサイトに登録済みのショートコードを勝手に実行できました。報告元のWPScanの勧告には、実際に再現できる手順まで載っています。

危険度は4.8と控えめです。攻撃が成立するにはフォーム側が特定の設定になっている必要があり、実行できるのも「そのサイトにすでに登録されているショートコード」に限られるためです。とはいえログイン不要で、しかも再現手順が公開されているという組み合わせは軽くありません。米政府CISAもこの1件については「実証コードあり」と評価しています。発見者はMeher Sudhakar Abbireddi氏です。

「Ninja Formsが攻撃されている」という記事は、別のプラグインの話

「Ninja Forms 脆弱性」で検索すると、実際に大量の攻撃が観測されたという2026年4月の記事が上位に出てきます。海外の大手セキュリティメディアも報じた、はっきりした事件です。ここまで読んで不安になった方もいると思うので、先に切り分けておきます。

あれは別のプラグインの話です。問題になったのは CVE-2026-0740、「Ninja Forms – File Uploads」というファイル添付機能を追加する拡張プラグインの欠陥でした。危険度9.8で、外部から任意のファイルをアップロードしてサーバー上でプログラムを実行できるという、今回の7件より明確に重いものです。利用サイトは約5万で、修正版は3.3.27です。

名前が似ているだけで、本体プラグイン(60万サイト)とは別の製品、別のバージョン番号体系です。この記事で扱っている7件は、いずれも本体側のものです。逆に言えば、File Uploadsアドオンも入れているサイトは、そちらのバージョンも別途確認する必要があります。管理画面のプラグイン一覧に「Ninja Forms - File Uploads」という項目が並んでいれば対象です。

セキュリティ会社のデータベースに載っていない理由

自分で裏を取ろうとした方が引っかかりやすい点も書いておきます。WordPressの脆弱性情報でよく参照されるWordfence IntelligencePatchstackのデータベースを見ても、7月21日公表の5件は載っていません(2026年8月13日時点)。

理由は、CVE番号を発行した組織が違うからです。この5件はVulnCheckという、WordPress専門ではないセキュリティ企業が番号を割り当てています。一方、CVE-2026-15663はWordfence、CVE-2026-15256はWPScanが発行しており、こちらはそれぞれのデータベースに収録されています。載っていないのは「存在しない」からではなく、収録する側の担当範囲の問題です

脆弱性の一次情報は、公的なデータベースであるNVDと、開発元が公開している更新履歴です。特定のセキュリティ会社のデータベースに出ていないことを「大丈夫な証拠」として読まないほうが安全です。同じような取りこぼしは他のプラグインでも起こるため、依存しているソフトを一覧で洗い出せるツールを使って、定期的に自分の環境側から確認する習慣を持っておくと確実です。

日本語の情報が、ほとんど存在しない

この記事を書くにあたって日本語圏の情報を探しましたが、7件のうち日本語で説明されているものは、ほぼありません

国内の脆弱性データベースであるJVN iPediaで「ninja」を検索すると、出てくるのは2024年と2016年の記録だけです。2026年に公表されたNinja Formsの脆弱性は、1件も登録されていません。JPCERT/CCの週次レポートも7月15日から8月13日まで全て確認しましたが、この7件への言及はありませんでした。IPAの注意喚起にもありません。Qiita、Zenn、はてなブックマークにも、7月以降の解説記事は見当たりませんでした。

検索で日本語のページに行き着いたとしても、内容をよく見ると2022年や2024年の別の脆弱性であることがほとんどです。「日本語で情報が出ていない=大したことがない」ではありません。60万サイトが使うプラグインで、決済金額を書き換えられる欠陥が見つかっているにもかかわらず、日本語では誰も書いていない、というだけの話です。

実際に攻撃されているのか

2026年8月13日時点の状況を整理します。

✓ 確認済みの事実

  • 米政府CISAの「実際に攻撃されている脆弱性リスト」に7件とも未登録。同リストの版数2026.08.11・全1,665件と照合(日本語で引けるダッシュボードはこちら
  • 今後30日以内に攻撃される確率の推計値(EPSS)は、7件とも0.4%未満
  • 実際の攻撃が観測されたという報告は、セキュリティ各社から出ていない
  • CVE-2026-15256については、報告元の勧告に再現手順が公開されている
  • Ninja Formsは配布停止になっておらず、WordPress公式から通常どおり更新できる(累計ダウンロード6,210万回、評価88/100)

つまり、今日明日でサイトが落ちるという状況ではありません。ただし、修正版が出て手口の見当がつく状態になってから狙われ始めるのは、この種の脆弱性ではよくある流れです。急がされてはいないが、次のメンテナンスまで放置していい話でもない、というのが実態に近い評価になります。

やること

WordPress管理画面の「プラグイン」を開き、Ninja Formsに更新の通知が出ていれば「更新」を押すだけです。適用後、バージョン表示が3.15.0になっていることを確認してください。念のため、更新前にサイトのバックアップを取っておくと安心です。

あわせてプラグインの自動更新を有効にしておくことをおすすめします。WordPressのプラグインは初期状態では自動更新が切れていることが多く、今回のように「1回更新したのに、その後さらに修正が出ていた」というパターンを取りこぼす原因になります。自動更新にしておけば、次に同じことが起きても手を動かさずに済みます。

すぐに更新できない事情がある場合、つなぎの措置は限定的です。届いたフォーム送信内容を管理画面で不用意に開かない運用にすれば、CVE-2026-65048の発火は抑えられます。公開フォームを一時的に止めれば、ログイン不要の3件はふさげます。ただしどちらも応急策で、根本的な対処は更新しかありません。WordPressのプラグインは同じ時期に脆弱性が相次いでいるため、人気プラグインの脆弱性まとめもあわせて確認しておくと、更新の抜け漏れを防げます。

修正が入った順番

経緯を追いたい方向けに、公式の更新履歴に沿って整理しておきます。

バージョン公式の更新履歴での日付セキュリティ関連の中身
3.14.92026年7月CVE 5件を修正
(65048〜65052)
3.14.102026年7月20日CVE 2件を修正
(15663・15256)
3.14.112026年7月23日なし
(バグ修正のみ)
3.14.122026年8月10日SQLの問い合わせ処理を強化
(CVE番号なし)
3.15.02026年8月12日なし
(AI機能の追加)

見ての通り、セキュリティ修正が3回に分かれて入っています。しかもCVE番号が付いたのは修正より後で、CVE-2026-15256にいたっては3.14.10のリリースから2週間以上あとの採番でした。「CVEが出たら対応する」というやり方だと、この構造では必ず遅れます。更新履歴に「Security」と書かれていたら、番号の有無にかかわらず上げるのが現実的な運用です。

よくある質問

Q. 結局どのバージョンにすればいいですか

3.15.0です。公表されているCVEを全部ふさぐだけなら3.14.10以上で足りますが、3.14.12にCVE番号の付いていないデータベース関連の修正が入っているため、最新版まで上げるのが確実です。

Q. 3.14.9に更新済みですが、まだ何かする必要がありますか

あります。3.14.9では CVE-2026-15663 と CVE-2026-15256 の2件が直っていません。7月下旬に「3.14.9へ」という案内が出回ったため、ここで止まっているサイトが少なくないはずです。3.15.0へ上げてください。

Q. フォームを置いているだけで危険ですか

7件のうち3件は、ログインしていない相手でも仕掛けられます。会員登録の要らない「お問い合わせ」「資料請求」「予約」といったフォームを公開しているサイトほど、対象になりやすくなります。フォームで支払いを受けている場合は、金額を書き換えられる CVE-2026-65052 の分も見ておいてください。

Q. すでに攻撃に使われていますか

2026年8月13日時点で、7件のいずれについても実際の攻撃は報告されていません。米政府CISAの悪用リストにも未登録です。ただし CVE-2026-15256 は報告元の勧告に再現手順が載っており、手口自体は公開されている状態です。

Q. 4月に「Ninja Formsが攻撃されている」というニュースを見ました

それは「Ninja Forms – File Uploads」という別の拡張プラグイン(CVE-2026-0740)の話で、この記事の7件とは無関係です。ただしそのアドオンも入れているなら、そちらは3.3.27以降になっているか別途確認してください。

Q. Wordfenceのデータベースで検索しても出てきません

7月21日公表の5件はVulnCheckがCVE番号を発行しており、WordfenceやPatchstackのデータベースには収録されていません(2026年8月13日時点)。載っていないことは、存在しないことを意味しません。公的なデータベースであるNVDと、開発元の更新履歴で確認してください。

まとめ

60万サイトが使うNinja Formsには、2026年7月から8月にかけて7件の脆弱性が公表されました。最も重いのはログイン不要で管理者乗っ取りにつながる CVE-2026-65048(危険度9.3)、実害が想像しやすいのは支払い金額を0円に書き換えられる CVE-2026-65052 です。

対処は3.15.0への更新、これだけです。ややこしいのは修正が3回に分かれて入っている点で、途中の3.14.9で止めていると2件が残ります。当時の案内どおりに更新した人ほど、かえって取りこぼしやすい形になっています。

実際の攻撃はまだ確認されておらず、米政府の悪用リストにも載っていません。慌てる必要はありませんが、この件から持ち帰る価値があるのは「CVE番号が付くのを待っていると遅れる」という一点です。今回、最後の1件に番号が付いたのは修正版が出た2週間以上あとでした。更新履歴にセキュリティ修正と書かれていたら、番号の有無を確かめる前に上げてしまうほうが早く、そして安全です。

参照元

avatar-m-1

Backend Engineer / AWS / Django / Go