# Contact Form 7 6.2〜6.2.3に認証不要の任意ファイルアップロードの脆弱性 — 6.2.4.1への更新と確認手順

元のページ: <https://chot-inc.com/columns/contact-form-7-624-file-upload-vulnerability>

セキュリティ 2026.11.02

WordPress向けフォームプラグイン Contact Form 7 のバージョン 6.2〜6.2.3 に、認証不要の任意ファイルアップロードの脆弱性があります。開発元は2026年10月29日に修正版6.2.4を公開し、WordPress.orgでは追加更新版の6.2.4.1が配布されています。該当バージョンを使っているなら、最優先で6.2.4.1以降へ更新してください。ただし6.2系はWordPress 7.1以上・PHP 8.3以上が必要で、要件を満たさない環境では更新ボタンも自動更新も動きません。この記事では、影響範囲の判断、更新できない場合の選択肢、更新後に壊れやすい箇所を順に整理します。

## 公表された事実の整理

開発元の告知によると、6.2〜6.2.3には複数の欠陥があり、それらを組み合わせると、本来は検証で弾かれるはずのファイルをアップロードでき、さらに送信直後に削除されるはずのファイルをサーバー上に残せます。認証は不要です。

- 公表日: 2026年10月29日（Contact Form 7 6.2.4）
- 対象バージョン: 6.2〜6.2.3
- 修正版: 6.2.4、追加更新版6.2.4.1（FormDataTree-PHPを2.0.10へ更新）
- 発見者: Shinya Murakami氏、Jakub Herman氏（WPScan経由で報告）
- 動作要件: WordPress 7.1以上、PHP 8.3以上

告知が理論上の攻撃対象として挙げているのは、「ファイルアップロード項目があるフォーム」かつ「ディレクトリの内容を公開一覧表示するHTTPサーバー設定」という組み合わせです。すべての導入サイトで即座にコードが実行されると公表されたわけではありません。告知にCVE番号やCVSS値、実害の確認についての記載はなく、本記事執筆時点でも確認できていません。深刻度の数値がないことは「軽い」という意味ではなく、自サイトの構成で判断する必要がある、という意味に受け取るのが妥当です。

## 自分のサイトが影響を受けるかを確認する順番

次の4点を上から確認すると、対応の緊急度が決まります。

1. **バージョン**: 管理画面の「プラグイン」でContact Form 7が6.2〜6.2.3なら対象です。6.1系以前はこの脆弱性の対象外ですが、開発元はセキュリティ強化が全バージョンの利用者に有効だとして全員に6.2.4への更新を推奨しています。
2. **添付欄の有無**: フォーム本文に `[file]` 系のタグがあるかを全フォーム分確認します。採用応募や見積依頼のフォームだけ添付を許可しているケースは見落としやすい構成です。
3. **ディレクトリ一覧表示**: アップロード先ディレクトリのURLを直接開き、ファイル一覧が見えないかを確認します。見える場合は、攻撃者が残存ファイルを発見できる状態です。
4. **アップロード領域でのスクリプト実行**: uploads配下でPHPが実行されない設定になっているかを確認します。Apacheの .htaccess による制御は、nginx単体やリバースプロキシ構成では効きません。サーバー設定側で拒否する必要があります。

1と2に該当するサイトは即時更新、3と4は更新の有無にかかわらず恒久的に塞いでおく項目です。プラグイン側の修正に依存せず、仮に将来また検証をすり抜けるファイルが置かれても実行されない状態を作っておくのが、再発する同種の問題への実質的な備えになります。過去に対象バージョンを運用していた場合は、アップロード先に不審なファイルが残っていないか、アクセスログに不自然な直アクセスがないかも確認対象です。

## 要件を満たせず更新できないときの選択肢

6.2系はWordPress 7.1以上・PHP 8.3以上を要求します。PHPが8.2以下のサーバーでは更新が提示されず、自動更新を有効にしていても静かに止まります。「自動更新オン」と「最新版である」は別の状態なので、設定ではなく実バージョンを見てください。

要件を満たせない場合、取れる選択肢は大きく3つです。第一にPHPとWordPress本体を上げて6.2.4.1へ更新する、これが本筋です。第二に、すぐに環境を上げられないなら6.1系の最新版に留め置く形になります。今回の脆弱性自体は6.2〜6.2.3に限定されているため、6.1系が直ちにこの問題の対象になるわけではありませんが、開発元のサポートは6.2系に移っていくため、暫定措置と位置づけるべきです。第三に、添付が業務上必須でないなら、環境更新が終わるまで `[file]` タグを外して添付受付を停止する判断もあります。ただしタグを外しても過去にアップロードされたファイルは残るため、ディレクトリの中身の確認は別途必要です。

## 更新後に動作が変わる箇所

6.2.4はセキュリティ強化のために仕様変更を伴います。更新して終わりにせず、以下の回帰テストを行ってください。

**拡張子の検証がセーフリスト方式に変更**されました。実行可能スクリプトと判定されうるファイル名を無害化する `wpcf7_antiscript_file_name()` が、従来の「禁止する拡張子を列挙する」方式から「許可する拡張子を定義する」方式に変わっています。セーフリストにない拡張子のファイルがアップロードされると、拡張子部分が安全な代替へ自動変換されます。既定のセーフリストはzipを含まないため、開発元は `wpcf7_file_extension_safelist` フィルターフックでzipを追加する例を示しています。応募書類をzipで受け取る運用などは、この変更で挙動が変わる典型例です。追加するのは業務上必要な形式だけに絞り、サーバーで実行されうる形式を安易に許可しないでください。

**関数のシグネチャ変更**もあります。`wpcf7_unship_uploaded_file()` は第2引数 `$options` が必須になり、参照渡しの第3引数 `$uploaded_files` が追加されました。日常的に使う関数ではありませんが、独自プラグインやテーマから呼び出している場合は修正が必要です。そのほか、正規表現のUTF-8処理の改善や依存ライブラリ（Functions-PHP、FormDataTree-PHP、SWV-PHP）の更新も含まれます。

確認すべきは、添付ありの送信が通ること、想定した拡張子が変換されずに届くこと、自動返信や外部サービス連携が従来どおり動くことの3点です。ステージング環境がある場合は、本番更新前にここまで通しておくと安全です。

## 本体だけでなくアドオンも点検する

Contact Form 7は有効インストール数が1,000万を超え、添付機能を拡張するサードパーティ製アドオンも広く使われています。本体を最新にしても、添付処理を肩代わりするアドオンが古ければ入口は残ります。たとえば「Drag and Drop Multiple File Upload for Contact Form 7」では、2026年にもファイル名の処理を迂回する認証不要の任意ファイルアップロードが報告され、1.3.9.9などで修正されています。

添付欄を持つサイトでは、本体・アドオン・サーバー設定の3層をまとめて棚卸ししてください。「どのフォームが添付を受け取るか」「その処理を担うのは本体かアドオンか」を一覧にしておくと、次に同種の脆弱性が公表されたときの初動が短くなります。

## 今日やること

まずバージョンを確認し、6.2〜6.2.3なら6.2.4.1以降へ更新します。更新できない環境では、要件（WordPress 7.1以上・PHP 8.3以上）の充足を計画に落とし、それまでは添付欄の要否を見直します。並行して、ディレクトリ一覧表示の無効化とアップロード領域でのスクリプト実行禁止を設定し、更新後は添付送信と連携処理の回帰テストまで済ませてください。

## 出典

- [Contact Form 7: リリース告知「Contact Form 7 6.2.4」（脆弱性の概要・仕様変更）](https://contactform7.com/2026/10/29/contact-form-7-624/)
- [Contact Form 7: リリース告知「Contact Form 7 6.2」（WordPress 7.1以上・PHP 8.3以上の要件）](https://contactform7.com/2026/10/06/contact-form-7-620/)
- [WordPress.org: Contact Form 7 プラグインページ（6.2.4.1の変更履歴・動作要件・有効インストール数）](https://wordpress.org/plugins/contact-form-7/)
- [WPScan: Drag and Drop Multiple File Upload for Contact Form 7 の脆弱性一覧](https://wpscan.com/plugin/drag-and-drop-multiple-file-upload-contact-form-7/)
- [セキュリティ対策Lab: Contact Form 7に認証不要の任意ファイルアップロードの脆弱性、6.2.4で修正](https://rocket-boys.co.jp/security-measures-lab/contact_form_7_624_security_update_20261030/)

この記事をシェア

## 最新の記事

[開発 2026.11.04](https://chot-inc.com/columns/vercel-mcp-interactive-deployment-card)

### [Vercel MCPがデプロイをインタラクティブカードで表示：ChatGPT上でビルドログまで追える](https://chot-inc.com/columns/vercel-mcp-interactive-deployment-card)

[開発 2026.11.04](https://chot-inc.com/columns/vercel-ci-standalone-without-linked-project)

### [Vercel CI が Vercel プロジェクトの連携不要に — 何が変わり、どう試すか](https://chot-inc.com/columns/vercel-ci-standalone-without-linked-project)

[AI最新情報 2026.11.04](https://chot-inc.com/columns/robots-txt-shared-ai-training-preference)

### [robots.txtでAI学習の可否を一括指定する共通シグナル「\_\_usage\_ai-training」とは](https://chot-inc.com/columns/robots-txt-shared-ai-training-preference)

[コラム一覧](https://chot-inc.com/columns)
