【ITニュース解説】The Super Forms RCE takes two requests, and the first one just asks the site for a nonce
2026年10月16日に「Dev.to」が公開したITニュース「The Super Forms RCE takes two requests, and the first one just asks the site for a nonce」について初心者にもわかりやすく解説しています。
ITニュース概要
WordPressプラグイン「Super Forms」と「Elementor Pro」に重大な脆弱性が見つかった。これにより、攻撃者が遠隔からサーバー上でプログラムを実行できる。すぐに最新版へアップデートし、不正なファイルやユーザーがいないか確認しよう。
ITニュース解説
WordPressのプラグインに存在する深刻な脆弱性が、多くのウェブサイトを危険にさらしている。特に注目されているのは、「Super Forms」と「Elementor Pro」という二つの人気プラグインに見つかった脆弱性で、これらは攻撃者が遠隔からウェブサーバー上で任意のコードを実行できてしまう「Remote Code Execution(RCE)」と呼ばれる、非常に重大なセキュリティ上の欠陥を抱えていた。RCEが成功すると、攻撃者はウェブサイトを自由に操り、データを盗んだり、改ざんしたり、さらには別の攻撃の踏み台にしたりすることが可能になるため、速やかな対応が求められる。
まずSuper Formsプラグインの脆弱性(CVE-2026-14894)について説明する。この問題は、ユーザーがフォームを通じてファイルを送信する際のチェック体制が不十分であることと、セキュリティ対策として一般的に使われる「nonce(ノンス)」という使い捨てのトークンの扱い方に起因する。通常、nonceは不正なリクエストを防ぐために生成され、有効なnonceがなければサーバーは処理を受け付けない。しかし、Super Formsでは、このnonceを攻撃者が認証なしで簡単に「発行」できてしまう特別な機能が存在した。
この脆弱性を悪用する攻撃は、大きく二つのステップで実行される。最初のステップでは、攻撃者は特別なリクエストをサーバーに送信し、有効なnonceとセッションクッキーを要求する。Super Formsプラグインは、この要求に対して、セキュリティ上問題となるnonceを生成して返してしまう。続く二つ目のステップで、攻撃者はこの不正に取得したnonceを利用し、ファイルアップロード機能を使って悪意のあるPHPコードをサーバーに送り込む。この際、攻撃者はPHPコードをBase64でエンコードし、一見すると画像ファイルのように偽装してアップロードする。しかし、サーバー側でファイルの種類や内容の検証が適切に行われていないため、最終的に .php 拡張子を持つファイルとしてサーバー上に保存されてしまう。こうしてアップロードされたPHPファイルは「ウェブシェル」と呼ばれ、攻撃者が遠隔からサーバー上で任意のコマンドを実行したり、不正な管理者アカウントを作成したりするための backdoor(裏口)となる。この脆弱性はバージョン6.3.314で修正されている。
次にElementor Proプラグインの脆弱性(CVE-2026-32475)について解説する。この脆弱性は、フォームのファイルアップロード機能における処理の仕方に問題があった。攻撃者がファイルをアップロードする際に、特定の形式でリクエストを送信すると、本来であればシステムが拒否すべきPHPファイルがセキュリティチェックをすり抜けてアップロードされてしまうというものだ。具体的には、アップロードフィールドに配列形式のデータを送信し、最初の要素を空にし、二番目の要素に悪意のあるPHPコードを含ませることで、サーバーはこれを有効なファイルと誤認し、/wp-content/uploads/elementor/forms/ というディレクトリに保存してしまう。このディレクトリに保存されたPHPファイルは、ウェブブラウザから直接アクセスして実行できるため、攻撃者は容易にサーバー上で悪意のあるコードを実行できる。ただし、この攻撃が成功するためには、対象のウェブサイトに、ファイルアップロードフィールドを含むElementorフォームが公開されている必要がある。この脆弱性はバージョン4.2.2で修正されている。
これらの脆弱性は、認証なしで攻撃が可能であり、かつ非常に単純なコマンドで悪用できるため、公開されてからすぐに大規模な自動化された攻撃キャンペーンに利用された。特定のウェブサイトを狙うのではなく、脆弱なプラグインがインストールされているすべてのサイトが無差別に標的となるため、サイトの規模に関わらずリスクにさらされることになる。Web Application Firewall(WAF)のようなセキュリティ製品は、このような攻撃を検知・ブロックする役割を果たすが、その保護にも限界がある。例えば、Wordfenceという有名なWAFサービスでは、有料プランのユーザーには脆弱性に対応するルールが迅速に提供される一方で、無料プランのユーザーには約30日の遅延があるため、攻撃のピーク時には保護されなかった可能性もある。また、WAFは攻撃をブロックするが、もし攻撃が成功して既にサーバー上にウェブシェルなどが設置されてしまった場合、WAFがそれを自動で除去してくれるわけではない点も理解しておく必要がある。
システムエンジニアとして、これらの脆弱性に対して取るべき対策は明確だ。 何よりも最優先すべきは、**脆弱性が修正された最新バージョンへの速やかなアップデート(パッチ適用)**である。Super Formsはバージョン6.3.314へ、Elementor Proはバージョン4.2.2へ即座に更新することが、新たな攻撃からシステムを守るための必須ステップとなる。
しかし、パッチ適用だけでは不十分な場合がある。既に攻撃が成功し、ウェブシェルや不正な管理者アカウントがシステム内に設置されてしまっている可能性も考慮しなければならない。そのため、アップデート完了後には、以下のような徹底的な調査と対応が必要だ。
まず、ウェブサーバーのアクセスログを詳しく調べ、不審なファイルアップロードの記録や、通常はアクセスされないはずのPHPファイルへのアクセスがないかを確認する。特に、admin-ajax.php への不審なリクエストや、wp-content/uploads/elementor/forms/ のようなアップロードディレクトリ内のPHPファイルへのアクセスは注意が必要だ。
次に、ファイルシステムを検査し、本来PHPファイルが存在すべきではないディレクトリ(例えば、画像のアップロード先であるwp-content/uploads以下など)に、.phpや.phtml、.pharといったPHP関連の拡張子を持つファイルがないかを探す。
さらに、WordPressの管理画面からユーザーリストを確認し、見覚えのない管理者アカウントや権限の強いアカウントが追加されていないかをチェックする。
もし調査の結果、ウェブシェルや不正なアカウントなど、何らかの侵入の痕跡が見つかった場合は、直ちに以下の対応を取る必要がある。感染したサーバーをネットワークから隔離し、攻撃を受ける前の安全な状態のバックアップからシステムを完全に復元する。そして、ウェブサイト、データベース、サーバーなど、関連するすべての認証情報を変更し、再発防止策を講じる。
Elementor Proを使用している場合は、サイト内のどのページにファイルアップロードフィールドを持つフォームが設置されているか、事前に把握しておくことも重要だ。これにより、もしもの時に攻撃対象となる可能性のある箇所を特定しやすくなる。
今回の事例は、プラグインの脆弱性が公開された際には、迅速なアップデートと、それに続く徹底的な事後調査がいかに重要であるかを改めて示している。セキュリティ対策は一度行えば終わりではなく、日々の継続的な監視と最新情報への対応が不可欠である。