WordPressプラグイン「Formidable Forms」に任意プラグインインストールの脆弱性(CVE-2026-89435)

CVSS 8.8 HIGH

対象プラグイン Formidable Forms (Formidable Forms – Contact Form, Survey, Quiz, Payment, Calculator Form & Custom Form Builder)
有効インストール約 300,000 件
影響バージョン6.35 以下
修正版7.0
CVECVE-2026-89435
種類権限昇格(Improper Neutralization of Special Elements in Output Used by a Downstream Component)
悪用される確率(EPSS)0.39%(全脆弱性の上位 67%)
公表2026年10月30日 当サイト掲載: 2026年11月2日 12:20

何が起きるか

購読者などの低い権限でログインできる利用者が、サーバーに任意のプラグインをインストールできる恐れがあります。悪意あるプラグインが入るとサイトの乗っ取りや改ざんにつながります。

想定される被害と条件

  • 購読者以上の権限を持つユーザーが、管理者の許可なく任意のプラグインをインストールできる
  • 悪意あるプラグインを通じてサイトの改ざん、不正なコード実行、乗っ取りが起きる恐れ
  • 顧客情報やフォーム送信データなどの情報が盗まれる可能性
  • バージョン6.35以下を使用し、有料版のFormidable Proを導入していない無料版のみのサイトが対象
  • ユーザー登録を一般公開しているサイトでは特に危険性が高い

今日やること

Formidable Forms を 7.0 以上に更新し、未修正のままにする場合は停止・削除を検討してください。

すぐに更新できない場合

すぐに更新できない場合は、プラグインを一時的に停止し、一般ユーザーの新規登録(設定>一般の「だれでもユーザー登録ができるようにする」)を無効化してください。WAFで該当プラグインへの不審な通信を遮断するのも有効です。

更新後に確認すること

  • 管理画面の「プラグイン」一覧に、自分で入れた覚えのないプラグイン(停止中のものも含む)がないか確認する
  • サーバーの wp-content/plugins フォルダに見覚えのないフォルダや最近追加されたファイルがないか確認する
  • 「ユーザー」一覧に不審な管理者アカウントや最近登録された見覚えのないユーザーがいないか確認する
  • サイトの表示や投稿・固定ページに改ざんや不審なリンクがないか確認する

不審な投稿・ユーザー・ファイルが見つかった場合は、専門家への相談をおすすめします。

Formidable Forms の現在の情報 (WordPress.org、2026-11-02 取得)

最新版7.0 修正版を含む
対応 WordPress6.3 以上(検証済み 7.1.4)
最終更新2026-10-16 12:07pm GMT
有効インストール300,000+
リンクWordPress.org のページ 公式サイト

技術的な詳細(修正差分の解析)

修正前後のコード(6.35 → 7.0)を WordPress.org から取得して差分を解析しました。特定の確度: 中。攻撃に使える手順は記載していません。

原因となった処理

  • 外部の接続処理から呼ばれるアドオンインストール用API(FrmAddonsController::can_install_addon_api / install_addon_api)の権限確認が、オプション frm_connect_token に保存された共有トークンとの一致確認だけに依存しており、呼び出し元ユーザーの install_plugins・activate_plugins 権限を確認していなかった。
  • connect_link() は呼び出したユーザーの権限を確認せずにトークンを生成・保存・表示していた。そのため、委譲可能な frm_view_forms 権限を与えられた購読者などの低権限ユーザーでも、有効なトークンを取得できた。
  • トークンの生成には wp_rand() のハッシュが使われていた。また、どのユーザーがトークンを発行したかを記録していなかったため、後の処理で発行者の権限を検証できなかった。
  • file_url パラメータで渡すダウンロードURLの検証(validate_url_is_in_s3_bucket())は、URL接頭辞の確認が不十分だった。このため公式配布元以外のファイルも受け入れられ、maybe_download_and_activate() によって任意のプラグインがインストール・有効化され得た。
  • Pro 未導入の判定は pro_is_included() だけで行われていた。Pro が未導入のサイトでは、ファイル取得を伴うインストール経路が必ず実行された。

被害が起きる前提条件

  • Formidable Forms 6.35 以前が有効化されている。
  • Formidable Pro が導入されていない無料版のみの構成である(Pro が導入済みならダウンロード経路は通らない)。
  • 攻撃者が購読者以上の権限でログインでき、frm_view_forms 権限などトークンを取得できる画面への到達手段を持っている。

修正版での変更

  • user_can_connect_account() が新たに追加された。トークンの発行は activate_plugins 権限を持ち、かつ install_plugins 権限を持つ(または Pro が導入済みの)ユーザーに限定された。権限のないユーザーには connect_link() が空文字を返す。
  • トークン発行者のユーザーIDが frm_connect_user に保存されるようになった。can_install_addon_api() と install_addon_api() は、発行者の権限を再確認してから処理する。発行者が install_plugins 権限を持たない場合、プラグインのダウンロードとインストールは拒否される。
  • トークンの生成方式が wp_generate_password(64) ベースに強化された。トークンの使用後は frm_connect_token と frm_connect_user の両方が削除され、再利用を防ぐ。
  • Pro の導入判定に is_installed('formidable-pro/formidable-pro.php') が加わり、Pro がファイルとして存在する場合の誤判定が減った。

主な修正ファイル: classes/controllers/FrmAddonsController.php

このプラグイン、自分のサイトにも入っている? URL を入れるだけの無料チェック →

原文(Wordfence Intelligence)

The Formidable Forms – WordPress Form Builder for Contact Forms, Calculators, Quizzes & More plugin for WordPress is vulnerable to Arbitrary Plugin Installation in all versions up to, and including, 6.35 via the ‘file_url’ parameter parameter. This is due to insufficient URL prefix validation in validate_url_is_in_s3_bucket() and a permission callback that relies solely on a shared token obtainable by any user with the delegable frm_view_forms capability, without checking install_plugins or activate_plugins capabilities. This makes it possible for authenticated attackers, with subscriber-level access and above, to install arbitrary plugins on the server. Exploitation additionally requires that the site is free-only (Formidable Pro is NOT installed).

参考リンク

本ページの作成について: 上記の出典データをもとに、「何が起きるか」「今日やること」「更新後に確認すること」などの日本語解説は生成 AI が作成し、サイトの主治医が随時確認しています。誤りに気づかれた場合はお問い合わせください。

最近公表された深刻度の高い脆弱性

脆弱性一覧 →

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!
目次