SimpleFormに認証不要のアップロード脆弱性、3.10.2以前
WordPress用プラグインSimpleFormの3.10.2以前に、ログイン不要でサーバーへファイルを置かれ、遠隔操作に至る脆弱性が公表されました。フォームを公開しているサイトは、修正版への更新と、アップロード先に不審なファイルがないかの確認を進めてください。
急ぎ度: 至急
CVSS v3は9.8で、認証なしにリモートコード実行へ至る脆弱性が公表されたばかりであり、3.10.2より後の版で修正が入っているためです。
関係があるか
WordPressでSimpleFormを有効にし、フォームのショートコードを公開ページに埋め込んでいるサイトが対象です。問い合わせ受付やアンケート、クイズ用のフォームに使っている企業サイトや、制作会社が預かっている顧客サイトも含まれます。
| 製品 | 影響を受ける版 | 修正版 |
|---|---|---|
| SimpleForm-Form Maker to Chat Apps with Quiz, Poll and Multi Lead Notifications(WordPressプラグイン) | 3.10.2以前のすべての版 | 3.10.2より後の版。具体的な版番号はWordPress.orgのプラグイン配布ページで確認してください |
確かめ方
- 1WordPressの管理画面で「プラグイン」の一覧を開き、SimpleFormの版が3.10.2以前かどうかを見ます。無効化していても、インストールされたまま残っていないかも確認します。
- 2WP-CLIを使える環境では、
wp plugin get simple-form --fields=name,version,statusで版と状態を確認できます。 - 3フォームのショートコードを埋め込んだ公開ページがあるかを、投稿や固定ページ、ウィジェットから洗い出します。複数サイトを管理している場合は、サイトごとに繰り返します。
何が起きたか
WordPressプラグインのSimpleFormに、ログインしていない第三者がサーバーへ任意のファイルをアップロードできる脆弱性が見つかりました。置かれたファイルがサーバー上で実行されると、サイトを遠隔から操作されるおそれがあります。
原因は、アップロードを処理するhandle_upload関数の検証の不備です。受け付けるファイルの種類を絞る許可リストがサーバー側になく、拡張子の判定もファイル名を整える前の値から導いています。この組み合わせにより、ファイル名の末尾の扱いを突くだけで、拡張子とMIMEタイプの検証をすべて通り抜けられると説明されています。
脆弱性は2026年10月31日に公表されました。分類はCWE-434(危険な種類のファイルの無制限アップロード)で、影響するのは3.10.2までの全版です。
攻撃の流れ
-
1
公開ページを探す
フォームを埋め込んだ公開ページを見つけます。
-
2
nonceを入手
ページに出力されている認証用の値を、閲覧するだけで取得します。
-
3
検証をすり抜ける
ファイル名の細工で、拡張子とMIMEの検証を通過します。
-
4
ファイルを設置
実行可能なファイルがサーバー上に置かれます。
-
5
遠隔操作
置かれたファイルが実行され、サイトを操作されます。
どう悪用されるか
攻撃にアカウントは要らず、インターネット越しに、利用者の操作も待たずに成立します。唯一のアクセス制御はnonceですが、この値は公開フォームのdata-nonce属性にそのまま出力されます。フォームのショートコードを埋め込んだページを開ける人なら誰でも手に入るため、実質的な防御にはなっていません。
悪用されると、実行可能なファイルがサーバーに置かれ、リモートコード実行に至るおそれがあります。CVSSのベクターでは機密性・完全性・可用性のすべてが高と評価されています。問い合わせ内容や顧客情報の閲覧、ページの改ざん、同じサーバー上の別サイトへの波及まで想定しておくべき種類の脆弱性です。
今すぐやること
-
1
SimpleFormを修正版へ更新する
管理画面のプラグイン更新、またはWP-CLIで、3.10.2より後の版に上げます。更新後に版を再確認し、フォームの送信が正常に動くかも試します。更新は公開サイトから優先し、複数サイトを運用している場合は一覧を作って漏れを防ぎます。
wp plugin get simple-form --fields=name,version,status -
2
更新できないサイトはプラグインを無効化する
検証に時間がかかるなら、更新を待たずにSimpleFormを無効化します。フォームが止まる影響と、遠隔操作されるリスクを比べれば、先に止めるほうが安全です。
-
3
不審なファイルが置かれていないか調べる
wp-content/uploads以下とプラグインのアップロード先に、見覚えのないPHPなどの実行形式ファイルや、拡張子が不自然なファイルがないかを見ます。アクセスログでは、フォームのアップロード処理への不自然なリクエストと、直後に同じファイルへアクセスした記録を探します。
-
4
侵害の跡が見つかったときの動き
不審なファイルがあれば、サイトを一時的に公開停止し、ログを保全したうえで、管理者パスワードとデータベースの認証情報、wp-config.phpの各種キーを入れ替えます。バックアップから戻す場合も、修正版に更新してから公開に戻します。
-
5
ベンダーの告知で最新の情報を確認する
修正版の版番号や、追加の回避策は、プラグインの配布ページとWordfenceの脆弱性情報に載っています。公表直後で更新が続く可能性があるため、作業前に見ておくと確実です。
すぐ更新できないとき
更新も無効化もすぐにはできない場合は、フォームのショートコードを埋め込んだページを一時的に非公開にして、公開側から入口を閉じます。あわせて、WAFでフォームのアップロード処理へのリクエストを遮断し、アップロード先のディレクトリでPHPなどが実行されない設定をWebサーバー側に入れます。いずれも修正版の適用までのつなぎで、根本的な解決にはなりません。
背景
SimpleFormは、WordPressサイトにフォームを作り、クイズやアンケート、複数の見込み客の通知をチャットアプリへ送るためのプラグインです。マーケティングや問い合わせ窓口として公開ページに置かれることが多く、不特定多数からの入力を直接受け付ける位置にあります。
今回の脆弱性が厄介なのは、守りの要になるはずのnonceが、フォームを埋め込んだ公開ページに印字されている点です。アップロード機能を持つWordPressプラグインでは、拡張子とMIMEの検証が甘いと実行可能ファイルを置かれることが知られています。許可リストをサーバー側に持つこと、拡張子の判定をファイル名の整形後に行うことが、この種の不備を防ぐ基本です。
よくある質問
Q.WAFを入れているサイトは、更新を後回しにしてよいですか。
この記事は、取得元の公開情報をもとに、人が監修しながらAIを活用して執筆しています。執筆と監修は佐々木 航が担い、公開したあとも人が内容を確認しています。誤りに気づいたときは直し、記事の末尾に訂正の行を残します。対応を決める前に、下の原文と参照先も確認してください。
影響パッケージ
| 種類 | パッケージ | 影響を受ける版 | 修正版 |
|---|---|---|---|
| wpazleen | SimpleForm – Form Maker to Chat Apps with Quiz, Poll and Multi Lead Notifications |
3.10.2 以前 |
— |
原文の説明 取得元が公開している説明をそのまま載せています (多くは英語)。
The SimpleForm – Form Maker to Chat Apps with Quiz, Poll and Multi Lead Notifications plugin for WordPress is vulnerable to Arbitrary File Upload in all versions up to, and including, 3.10.2 via the handle_upload function. This is due to missing server-side file key allowlist and pre-sanitization extension derivation that allows a trailing-dot filename to bypass all extension and MIME validation in handle_upload. This makes it possible for unauthenticated attackers to upload files that may be executable, which makes remote code execution possible. The only access control is a nonce that is printed into every public form's data-nonce attribute, making it trivially obtainable by any unauthenticated visitor on a page embedding the form shortcode.
出典: CVE.org (CVE Program・cvelistV5) NVD GitHub Advisory
参照URL
- web security@wordfence.com
- web security@wordfence.com
- web security@wordfence.com
- web security@wordfence.com
- web security@wordfence.com
- web security@wordfence.com
- web security@wordfence.com
- web security@wordfence.com
- web security@wordfence.com
- web nvd.nist.gov
- web plugins.svn.wordpress.org
- web github.com