Contact Form 7 6.2.4公開。ファイル添付フォームに、ログインなしで任意のファイルを置かれる脆弱性を修正

Contact Form 7 6.2.4公開。ファイル添付フォームに、ログインなしで任意のファイルを置かれる脆弱性を修正

この記事を約3分で解説

音声:VOICEVOX:ずんだもん

WordPressのお問い合わせフォームとして最も広く使われているプラグイン「Contact Form 7」の、バージョン6.2.4が2026年10月29日に公開されました。

今回はセキュリティの修正を含む更新です。6.2〜6.2.3には、ログインしていない第三者が、フォームのファイル添付欄を悪用して、本来は受け付けないはずのファイルをサーバーに置けてしまう問題がありました。

一方で、安全性を高めるための変更により、WordやExcelなど一部の添付ファイルが、更新後は名前を変えて届くようになるという副作用もあります。採用の応募フォームや見積もり依頼フォームで添付を受け付けているサイトは、更新の前にこの記事の「更新で変わること」を確認してください。

この記事は2026年10月29日時点の公開情報をもとに作成し、10月30日に「SNS・ネットの情報をファクトチェック」を追記・修正しました。最新情報は記事末尾の参考情報もあわせてご確認ください。

まず結論:Contact Form 7を使っているサイトの運営者がやること

  1. Contact Form 7を6.2.4以降に更新する(同日に6.2.4.1も公開済み。最新版でOK)
  2. ファイル添付欄のあるフォームでは、更新後にWord・Excel・ZIPなどが正しく届くか確認する
  3. サーバーの「ディレクトリの一覧表示」が無効になっているか確認する

「どのフォームに添付欄があるか分からない」「更新して受付が止まらないか不安」という方へ
C-TechLabでは、プラグインの更新から、更新後のフォームの動作確認まで代行しています。初回のご相談は無料です。

無料で相談する →

Contact Form 7とは

Contact Form 7は、WordPressにお問い合わせフォームを設置するための無料プラグインです。日本の開発者である三好隆之氏が作っていて、WordPress公式のプラグインディレクトリでは1,000万件以上のサイトで有効化されています。

企業サイトや店舗サイトの「お問い合わせ」ページの多くがこのプラグインで作られています。制作会社にサイトを作ってもらった場合も、知らないうちに使っていることがよくあります。管理画面の左側に「お問い合わせ」というメニューがあれば、Contact Form 7が入っています。

何が起きたのか

脆弱性の概要

項目内容
対象Contact Form 7 6.2〜6.2.3
修正版6.2.4(2026年10月29日公開)。同日に6.2.4.1も公開
種類ログイン不要で任意のファイルをアップロードできる問題
必要な条件ファイル添付欄のあるフォームがあり、サーバーがディレクトリの中身を一覧表示する設定になっていること
発見・報告Shinya Murakami氏とJakub Herman氏が発見し、WordPressの脆弱性データベースWPScanを通じて報告
CVE番号10月29日時点では確認できず

問題があったのは、2026年10月6日に公開された6.2から6.2.3までの約3週間分のバージョンです。6.1.x以前のバージョンには、今回の脆弱性はありません。

仕組み:「受け付けない」「すぐ消す」の2つの守りがすり抜けられた

Contact Form 7のファイル添付欄には、もともと次の2つの守りがあります。

  1. 受け付けるファイルの種類を制限する:危険なプログラムのファイル(PHPなど)は、名前を変えて動かないようにする
  2. 送信が終わったらすぐ消す:添付されたファイルはメールに付けて送ったあと、サーバーから削除する

開発者の発表によると、6.2〜6.2.3では、複数の小さな欠陥を組み合わせることで、本来はブロックされるはずのファイルをアップロードでき、さらに本来はすぐ消されるはずのファイルをサーバーに残せる状態になっていました。

修正前後のソースコードを比べると、主に次の点が直されています。

  • ファイル名の確認:ふつうのスペース以外の特殊な空白文字や、壊れた文字コードを含むファイル名をきちんと処理するようになった
  • 危険な拡張子の判定:「危ない拡張子のリストに当てはまったら止める」方式から、「安全な拡張子のリストに当てはまらなければ無害な名前に変える」方式に切り替えた
  • 途中で失敗したときの後片付け:入力チェックでエラーになった場合でも、それまでに受け取ったファイルを漏れなく削除するようにした

なぜ「ディレクトリの一覧表示」が条件なのか

Contact Form 7は、添付ファイルを一時的に置くフォルダの名前に、推測しにくいランダムな文字列を使っています。そのため、ファイルを置けたとしても、ふつうは攻撃者がその場所を知ることができません。

ところが、サーバーが「フォルダの中身を一覧で見せる」設定(ディレクトリリスティング)になっていると、ランダムな名前のフォルダもブラウザから丸見えになります。開発者が「理論上、ファイル添付欄のあるフォームがあり、かつディレクトリの中身を一覧公開する設定のサーバーで動いているサイトがすべて対象になり得る」と説明しているのは、このためです。

影響を受ける条件

すべてのContact Form 7サイトが危険なわけではありません。次の3つすべてに当てはまるサイトが対象です。

  • Contact Form 7が6.2〜6.2.3
  • ファイル添付欄([file]タグ)のあるフォームを公開している
  • サーバーがディレクトリの一覧表示を許可している

最近のレンタルサーバーは、初期設定でディレクトリの一覧表示が無効になっていることが多いです。ただし、自社で用意したサーバーや、古い設定を引き継いでいるサーバーでは有効になっていることもあります。

SNS・ネットの情報をファクトチェック

公開直後で、まだ情報が少ない段階です。気をつけたいポイントを整理しました。

よくある疑問確認結果
Contact Form 7を使っていれば全サイトが危険?いいえ。対象は6.2〜6.2.3で、添付欄とディレクトリの一覧表示の両方がそろったサイト
6.1.x以前も危険?今回の脆弱性はない。ただし開発者は、今回の強化はすべてのバージョンに効くとして、全ユーザーに6.2.4への更新を勧めている
今回の6.2.4は「脆弱性の修正」なの?はい、脆弱性の修正です。開発者自身が「任意のファイルが認証なくアップロードされる問題」を修正したと発表しています
CVE番号は出ている?10月30日時点では確認できず。報告はWPScan経由ですが、WPScanの脆弱性データベースにもまだ掲載されていません(掲載はこれからとみられます)
実際に攻撃されている?10月30日時点で、悪用の報告は確認できず
「Contact Form 7のファイルアップロード脆弱性」で検索すると、記事がたくさん出てくる今回の6.2.4の件も脆弱性ですが、検索で出てくる記事の多くは別の脆弱性の話です。2020年(5.3.2未満)や2023年(5.8.4未満、編集者以上の権限が必要)の過去の脆弱性や、「Drag and Drop Multiple File Upload」など別の拡張プラグインの脆弱性が混ざっています。記事に書かれている対象のバージョンを確認し、今回の件(6.2〜6.2.3が対象)と混同しないようにしてください

ただし、修正前後のソースコードは誰でも見比べられる状態です。今後、攻撃に使われる可能性を考えて、早めに更新してください。

更新で変わること:WordやExcelの添付ファイル名

今回の更新でいちばん実務に響くのが、この点です。

6.2.4からは、安全とされる拡張子のリスト(セーフリスト)に入っていないファイルは、名前の末尾が自動で書き換えられます。初期設定でリストに入っているのは、次の種類だけです。

  • 画像:jpg、png、gif、webp、heic など
  • 音声:mp3、m4a、wav など
  • 動画:mp4、mov、avi など
  • そのほか:pdf、txt

つまり、Word(docx)、Excel(xlsx)、PowerPoint(pptx)、CSV、ZIPなどは、リストに入っていません。ソースコードで確認したところ、たとえば「履歴書.docx」は「履歴書.docx_.txt」のような名前に変わって、メールに添付されます。

受け取った側は、ファイル名の末尾の「_.txt」を消せば元のファイルとして開けます。ただ、そのことを知らないと「ファイルが壊れて届いた」と勘違いしてしまうかもしれません。

WordやExcelを受け付けたい場合

開発者は、セーフリストに拡張子を追加するための仕組み(wpcf7_file_extension_safelistというフィルターフック)を用意しています。テーマのfunctions.phpや、自作のプラグインに次のように書くと、指定した拡張子は名前を変えずに受け付けられます。

add_filter( 'wpcf7_file_extension_safelist', function ( $safelist ) {
	return array_merge( $safelist, array( 'docx', 'xlsx', 'pptx', 'zip' ) );
} );

ただし、リストに足すほど受け付けるファイルの幅が広がります。本当に必要な拡張子だけを足し、フォーム側のfiletypesオプションでも受け付ける種類を絞っておきましょう。functions.phpの編集を間違えるとサイトが表示されなくなることもあるため、不安な場合は専門家に任せてください。

なお、開発者向けには、内部の関数wpcf7_unship_uploaded_file()の引数も変わっています。独自にカスタマイズしたフォームでこの関数を使っている場合は、修正が必要です。

対処法

1. Contact Form 7を最新版に更新する

管理画面の「プラグイン」でContact Form 7のバージョンを確認し、6.2.4以降に更新してください。同じ日に、内部の部品を更新した6.2.4.1も公開されているので、最新版にすれば問題ありません。

注意したいのは、6.2以降はWordPress 7.1以上、PHP 8.3以上が必要という点です。WordPressやPHPが古いサイトでは、そもそも6.2系に更新できず、6.1.x以前のままになっています。その場合、今回の脆弱性の対象ではありませんが、今後の修正を受けられないため、WordPressとPHPの更新を計画してください。PHPの更新については「PHPのバージョンを上げたらサイトが表示されない?」も参考になります。

更新の前にはバックアップを取り、更新後に各フォームから実際にテスト送信して、メールが届くかを確認しましょう。

2. 添付欄のあるフォームで、実際にファイルを送ってみる

添付欄のあるフォームでは、ふだん受け取っている種類のファイル(Word、Excel、PDFなど)を実際に添付してテスト送信し、届いたファイル名を確認してください。名前が変わってしまう場合は、前の章の方法でセーフリストに追加するか、受け付ける形式をPDFなどに絞ることを検討します。

3. ディレクトリの一覧表示が無効か確認する

ブラウザで「https://(自分のサイト)/wp-content/uploads/」を開いてみてください。ファイルやフォルダの一覧が表示された場合は、一覧表示が有効になっています。

一覧表示はContact Form 7に限らず、思わぬファイルを外から見られる原因になります。Apacheを使っているサーバーなら.htaccessにOptions -Indexesと書く、レンタルサーバーなら管理画面の設定で無効にする、といった方法で止めておきましょう。

4. 心配な場合は、不審なファイルがないか確認する

6.2〜6.2.3を使っていて、添付欄があり、一覧表示も有効だったサイトは、次の点も確認しておくと安心です。

  • wp-content/uploads/wpcf7_uploads/の中に、送信から時間がたっても残っているファイルがないか
  • wp-content以下に、見覚えのないPHPファイルなどが置かれていないか

不審なファイルが見つかった場合は、すぐに消すのではなく、いつ置かれたかを記録したうえで専門家に相談してください。WordPressが狙われる理由と基本の対策は「WordPressはセキュリティ的に危険?」でも解説しています。

C-TechLabにできること

C-TechLabでは、WordPressサイトの保守・セキュリティ対策をお引き受けしています。

  • 影響の確認:Contact Form 7のバージョン、添付欄のあるフォーム、サーバーの一覧表示の設定を確認します
  • 安全な更新作業:バックアップを取り、検証用の環境で動作を確認してから更新します
  • フォームの調整:Word・Excelなど必要な形式を受け付けるための設定を、安全な範囲で行います
  • 継続的な保守:脆弱性の情報を見張り、必要な更新を代わりに行います

「お問い合わせフォームが何で作られているか分からない」という段階でも大丈夫です。代表エンジニアが直接、状況を伺います。詳しくはホームページ運用保守・バージョンアップのページもご覧ください。

よくある質問

Contact Form 7 6.2.4の更新は、脆弱性の修正ですか?

はい。開発者は、Contact Form 7 6.2〜6.2.3にあった「ログインしていない第三者が任意のファイルをアップロードできる問題」を6.2.4で修正したと発表しています。ネットで見つかる「Contact Form 7のファイルアップロード脆弱性」の記事には、2020年や2023年の過去の脆弱性や別の拡張プラグインの話も多いため、対象のバージョンを確認してください。

Contact Form 7を使っていれば、必ず影響を受けますか?

いいえ。影響を受けるのは、6.2〜6.2.3を使っていて、ファイル添付欄のあるフォームを公開しており、さらにサーバーがディレクトリの一覧表示を許可しているサイトです。ただし、開発者は全ユーザーに6.2.4以降への更新を勧めています。

添付欄のないフォームしか使っていません。更新は必要ですか?

今回の脆弱性の影響は受けませんが、更新をおすすめします。更新しておけば、あとから添付欄を追加したときも安全ですし、今後の修正も受けやすくなります。

更新したら、Wordの添付ファイルが「.docx_.txt」で届くようになりました。壊れていますか?

壊れていません。6.2.4から、安全な拡張子のリストにない形式は、名前の末尾が書き換えられるようになりました。ファイル名の末尾の「_.txt」を消せば開けます。今後も名前を変えずに受け付けたい場合は、wpcf7_file_extension_safelistフィルターで拡張子を追加してください。

6.1.xのままですが、6.2.4に更新できません。

6.2以降は、WordPress 7.1以上とPHP 8.3以上が必要です。6.1.x以前には今回の脆弱性はありませんが、今後のセキュリティ修正を受けるために、WordPressとPHPの更新を計画してください。

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

2026年10月30日時点で、実際の攻撃に悪用されたという報告は確認できていません。ただし、修正前後のソースコードは公開されているため、早めの更新をおすすめします。

参考情報