本文へスキップ

Contact Form 7 脆弱性|更新前に確かめること

Contact Form 7 脆弱性|更新前に確かめること

Contact Form 7 の脆弱性が、2026 年 10 月 29 日に公表されました。Contact Form 7 は、WordPress で作ったホームページに「お問い合わせフォーム」を置くためのプラグインで、WordPress.org では有効インストール数 1,000 万以上と表示されています。お店や会社のサイトで、制作会社が最初に入れてそのまま、というケースも多いはずです。

ニュースを見て「うちのフォームは大丈夫なのか」と思っても、管理画面を開いたことがない方もいると思います。この記事では、自分のサイトが対象かどうかを確かめる順番と、更新ボタンを押す前に見ておきたい条件をまとめます。

先に結論:対象は Contact Form 7 の 6.2〜6.2.3 です。管理画面の「プラグイン」で版を確かめ、該当していればバックアップを取ってから 6.2.4.1 以降へ更新してください。

危ないのは、フォームにファイル添付欄があり、サーバーがフォルダーの中身を一覧表示する設定になっている組み合わせとされています。公表時点で、実際の攻撃による被害が確認されたという情報はありません。

Contact Form 7 の脆弱性で何が見つかったのか(2026年10月29日公表)

今回の欠陥は「認証不要の任意ファイルアップロード」と呼ばれる種類のものです。ログインしていない第三者が、フォームを通して、本来は受け付けないはずのファイルをサーバーに置けてしまう、という意味です。まず数字と版を表にします。

項目内容
公表2026 年 10 月 29 日(6.2.4 の公開)
影響する版6.2〜6.2.3
修正版6.2.4(現在は 6.2.4.1 が最新)
内容認証なしで、本来拒否されるファイルを置ける
条件ファイル添付欄+ディレクトリ一覧表示
悪用公表時点で被害の確認なし
6.2 系の動作条件WordPress 7.1 以上・PHP 8.3 以上
Contact Form 7 の脆弱性の要点(2026 年 11 月 2 日時点)

6.2〜6.2.3 には複数の欠陥があり、組み合わせると本来拒否されるファイルをアップロードでき、送信後に消えるはずの一時ファイルがサーバーに残る場合がある。開発元は、ファイルアップロード欄のあるフォームと、ディレクトリの一覧表示を許すサーバー設定の組み合わせを、理論上の攻撃条件として示している。報告者は Shinya Murakami 氏と Jakub Herman 氏(WPScan 経由)。

出典:セキュリティ対策Lab「Contact Form 7に認証不要の任意ファイルアップロードの脆弱性、6.2.4で修正」

同じ記事は、すべてのサイトで直ちにプログラムを実行されるとは公表されていない、とも書いています。置かれたファイルが外から見えるか、実行できるかは、サーバーの設定しだいです。「1,000 万サイトが一斉に乗っ取られる」という話ではありませんが、条件がそろったサイトでは放っておく理由もありません。

用語:ディレクトリ一覧表示とは、サーバー上のフォルダーの URL を開いたとき、中にあるファイルの名前が一覧で表示される設定のことです。これが有効だと、フォームから送られて残ったファイルの名前を第三者が探しやすくなります。レンタルサーバーの初期設定や .htaccess の書き方で変わります。

なお 6.2.4 では、添付ファイルの名前の扱いが「禁止する拡張子を並べる」方式から「許す拡張子だけを決める」方式に変わりました。決めた一覧に無い拡張子は、安全な別の拡張子に自動で置き換えられます。そのあと出た 6.2.4.1 は、WordPress.org の変更履歴では、中で使っている部品(FormDataTree-PHP)を 2.0.10 に上げた版です。

Contact Form 7 の脆弱性の対象か、自分のサイトで確かめる

確かめるのは 2 つだけです。入っている版と、フォームにファイル添付欄があるかどうか。どちらも WordPress の管理画面にログインできれば、数分で見られます。

WordPress の管理画面の「プラグイン」で版を見る

管理画面の左のメニューから「プラグイン」→「インストール済みプラグイン」を開き、一覧の中から「Contact Form 7」を探します。名前の下に「バージョン 6.2.3」のように書いてあります。ここが 6.2、6.2.1、6.2.2、6.2.3 のどれかなら対象です。

一覧に Contact Form 7 が無ければ、今回の話は関係ありません。別のフォームのプラグインを使っているか、フォーム自体が WordPress の外にあります。

フォームにファイル添付欄を使っているか

次に、問い合わせフォームに「写真を添付」「見積もり用の資料」のような、ファイルを選んで送れる欄があるかを見ます。管理画面の「お問い合わせ」→「コンタクトフォーム」で各フォームを開き、フォームの中身に「file」という語で始まる角かっこの行があれば、添付欄を使っています。公開しているページで、実際のフォームを目で見て確かめても構いません。

ここ、見落としがちです:フォームは 1 つとは限りません。トップの問い合わせとは別に、採用の応募フォームや修理の申込フォームだけ添付欄が付いている、という作りはよくあります。「お問い合わせ」→「コンタクトフォーム」の一覧で、全部のフォームを開いて確かめてください。

添付欄が無ければ、公表された攻撃の条件には当てはまりません。それでも、対象の版を使っているなら更新はしておきたいところです。フォームはあとから誰かが添付欄を足すこともあります。

店長
店長
管理画面のログイン情報が分からない、という段階で止まる方もいると思います。その場合は無理に探し回らず、サイトを作った会社に聞くのがいちばん早いです。

更新する前に確かめたい WordPress 7.1・PHP 8.3 の条件

WordPress.org のプラグインのページでは、Contact Form 7 の現在の版(6.2.4.1)の動作条件は WordPress 7.1 以上、PHP 8.3 以上と表示されています。セキュリティ対策Lab の記事も、6.2 系の条件を同じく WordPress 7.1 以上・PHP 8.3 以上としています。

ここで、ひとつ整理しておきます。6.2〜6.2.3 がすでに動いているサイトは、この条件を満たした環境で動いているはずです。条件で引っかかりやすいのは、むしろ 6.1 以前のまま止まっているサイトです。そのサイトは今回の対象の版ではありませんが、6.2.4.1 へ上げようとすると、先に WordPress 本体や PHP を上げる話になります。

注意:PHP の版を上げると、古いテーマや別のプラグインが動かなくなり、ページが真っ白になることがあります。PHP は WordPress の中ではなくレンタルサーバーの管理画面で変える設定なので、元に戻せる状態(バックアップ)を作ってから触ってください。

今の WordPress の版は、管理画面の「ダッシュボード」→「更新」で見られます。PHP の版は「ツール」→「サイトヘルス」→「情報」の「サーバー」の項目に出ています。対象の版を使っているサイトの更新は、次の順で進めると戻り道を残せます。

  1. レンタルサーバーのバックアップ機能か、バックアップ用のプラグインで、サイトのファイルとデータベースを両方保存する。
  2. 「ツール」→「サイトヘルス」で、WordPress 7.1 以上・PHP 8.3 以上になっているかを確かめる。
  3. 「プラグイン」の一覧で、Contact Form 7 の「今すぐ更新」を押し、6.2.4.1 以降になったことを確かめる。
  4. 公開しているページからフォームを 1 回送信し、確認のメールが届くかを見る。添付欄があるフォームは、ファイルを付けて送る。

独自の拡張子のファイルを受け付けていたフォームは、6.2.4 から自動で別の拡張子に置き換わるようになったため、更新後に受け取り方が変わることがあります。手順 4 でファイルを付けて送るのは、それを確かめるためです。

Bricksforge 脆弱性|悪用中、今日確かめる3つのこと

更新したあとに見ておきたいこと

更新すれば、これから先の穴はふさがります。ただ、対象の版を使っていた期間に何か置かれていたとしたら、それは更新しても消えません。セキュリティ対策Lab の記事も、過去に対象の版を使っていた場合は、アップロード先やアクセスログに不審なファイルやアクセスがないか調べることを挙げています。

更新後に見ておく所

  • 添付ファイルを付けたフォームの送信と、メールへの添付が今までどおり届くか
  • アップロード先のフォルダー(wp-content/uploads の中)を URL で開いて、ファイルの一覧が出ないか
  • アップロード先に、覚えのない名前や拡張子のファイルが無いか
  • レンタルサーバーのアクセスログに、フォームの送信先や uploads へのアクセスが不自然に続いていないか
  • アップロード先でプログラムが動かない設定になっているか(サーバー会社や制作会社に聞く)

2 つ目の「一覧が出ないか」は、今回の条件そのものです。ブラウザーで自分のサイトの uploads のフォルダーの URL を開いて、ファイル名がずらっと並んだら一覧表示が有効になっています。真っ白なページや「アクセスが拒否されました」と出れば、一覧表示は止まっています。

アクセスログの読み方は、慣れていないと判断が難しいところです。ファイルの一覧も、何が普通で何が不審かは、そのサイトをいつも見ている人でないと分かりにくい。ここは自分で深追いせず、管理している人に頼る場面だと私は考えています。

店長
店長
覚えのないファイルを見つけても、その場で消す前に名前と場所を控えてください。いつ、どこから置かれたかを調べる手がかりが、消すと一緒になくなります。

制作会社に任せている場合の聞き方

ホームページを制作会社や保守の業者に任せている場合、自分で更新ボタンを押すより、聞いて確かめるほうが確実です。保守の契約によっては、勝手に更新すると業者側の管理とずれることもあります。

聞くときは、次のように具体的に伝えると話が早く進みます。

  • 「うちのサイトの Contact Form 7 は何という版ですか。6.2〜6.2.3 なら 6.2.4.1 以降にしてほしい」
  • 「問い合わせフォームにファイル添付欄はありますか」
  • 「アップロード先のフォルダーは、一覧表示とプログラムの実行が止まっていますか」
  • 「対象の版だった期間に、アップロード先に不審なファイルが無いか見てもらえますか」

メモ:この脆弱性には、開発元の告知の時点で CVE の番号や深刻度の点数が付いていないと報じられています。業者に聞くときは番号ではなく、「Contact Form 7 の 6.2.4 で直った、ファイルアップロードの脆弱性」と伝えれば通じます。

答えが返ってこない、誰が管理しているのか分からない、というサイトも実際にはあります。その場合は、今回の件をきっかけに、管理画面に入れる人とサーバーの契約者が誰かを整理しておくと、次に似た話が出たときに慌てずに済みます。

WordPressヘッダーが勝手に改変?小規模ブログでも襲う不正ログインの現実
店長
店長
プラグインの更新は、押すだけなら 1 秒です。押す前のバックアップと、押したあとの送信テストを省かないことが、サイトを壊さないいちばんの近道です。

よくある質問

ファイル添付欄を使っていなければ、Contact Form 7 を更新しなくていいですか?

対象の版(6.2〜6.2.3)を使っているなら、添付欄が無くても 6.2.4.1 以降への更新をおすすめします。公表された攻撃の条件はファイル添付欄があるフォームとの組み合わせですが、あとから添付欄を足すこともあるためです。更新の前にバックアップを取ってください。

Contact Form 7 の脆弱性は、もう攻撃に使われていますか?

公表時点では、実際の攻撃による被害が確認されたという情報はありません。ただし対象の版を使っていた期間がある場合は、アップロード先のフォルダーやアクセスログに、覚えのないファイルや不自然なアクセスが無いかを確かめておくと安心です。

更新ボタンを押したら、サイトが崩れることはありますか?

動作条件を満たしていれば崩れることは少ないですが、絶対ではありません。現在の版は WordPress 7.1 以上・PHP 8.3 以上が条件なので、先に版を確かめ、バックアップを取ってから更新してください。自信がなければ、制作会社やサーバーの管理者に「Contact Form 7 を 6.2.4.1 にしたい」と伝えるのが確実です。

まとめ

Contact Form 7 の脆弱性は、6.2〜6.2.3 で、ファイル添付欄とディレクトリ一覧表示が重なったときに、認証なしで本来拒否されるファイルを置かれるおそれがあるというものです。修正版は 6.2.4 で、今は 6.2.4.1 が出ています。公表時点で被害は確認されていません。

やることは、版を確かめる、バックアップを取る、6.2.4.1 以降へ更新する、送信テストをする、の順です。対象の版を使っていた期間があれば、アップロード先に覚えのないファイルが無いかも見ておいてください。自分のサイトがどうなっているか分からないときは、まず管理している人に聞くところから始めれば十分です。