
店舗や施設などの情報を地図付きで掲載するディレクトリサイト(掲載情報の一覧サイト)を構築できるプラグイン「GeoDirectory(GeoDirectory – WP Business Directory Plugin and Classified Listings Directory)」において、セキュリティ上の問題が確認されました。影響を受けるのは、バージョン 2.8.187 までのすべてのバージョンです。
本脆弱性を悪用された場合、ログインしていない第三者によって、サーバー上にあるPHPファイル(Webサイトを動かすプログラムのファイル)を不正に読み込み・実行させられる可能性があります。
対策として、バージョン 2.8.188 以降への更新を推奨します。
脆弱性詳細
本脆弱性は、GeoDirectoryのタグ一覧(「GD > Tags」ウィジェット・ブロック)で、表示内容を切り替える際に使われる通信の受付処理に存在します。この受付処理はログインしていない閲覧者にも公開されています。そのため、サイトにアクセスできる第三者であれば誰でも攻撃を試みることができます。タグ一覧をサイトに設置していない場合も影響を受けます。
想定される被害
攻撃が成功した場合、以下のような被害が想定されます。
- サーバー上のPHPファイルの不正な実行
- 本来は単独で実行されることを想定していないPHPファイルを、攻撃者の指定どおりに実行させられます。
- 実行されたファイルの処理内容に応じて、アクセス制限の回避やサイト内部の情報の表示が起こり得ます。
- 攻撃者が用意したプログラムの実行
- 他のプラグインの不備などにより攻撃者がPHPファイルをサーバーに設置できる場合は、そのファイルも実行できます。これにより、攻撃者がサイトを改ざんできる状態になります。
※ 対象は拡張子が「.php」のファイルのみで、画像やテキストファイルなどを読み込ませることはできません。
被害発生の条件
- GeoDirectoryの掲載情報に、タグが1件以上登録されている
技術的な詳細
本脆弱性は、主に次の3点に起因します。
表示形式の指定値をそのままファイル名に使っていた
タグ一覧の表示形式(アイコンを左に置くか、上に置くか)は、通信で送られてくる値で指定されます。本来は2種類のどちらかしか想定していません。しかし、それ以外の値が送られた場合も、その値をそのまま表示用テンプレート(画面の部品となるPHPファイル)のファイル名として使っていました。
フォルダをさかのぼる指定を防げていなかった
ファイル名に「上位のフォルダへ移動する」意味の記号を含めると、テンプレート用フォルダの外にあるファイルを指定できました。HTML表示向けの無害化処理(エスケープ)は行われていましたが、この記号は取り除かれません。そのため、指定したPHPファイルがそのまま読み込まれ、実行されていました(パストラバーサル)。
通信の確認用トークンを誰でも取得できた
受付処理では、正当な通信かを確認するトークン(nonce:通信の正当性を確かめるための値)をチェックしていました。しかしこのトークンはサイトの公開ページに埋め込まれており、閲覧者であれば誰でも取得できました。そのため、このチェックは攻撃を防ぐ役割を果たしていませんでした。
悪用の大まかな流れ
- サイトの公開ページから確認用トークンを取得する
- タグ一覧の表示切り替え用の受付処理へ、表示形式の値にフォルダをさかのぼる指定を含めた通信を送る
- 指定したサーバー上のPHPファイルが読み込まれ、実行される
(模倣防止のため詳細は伏せています)
対策版での修正
バージョン 2.8.188 では、次の2点が修正されています。
- 表示形式は「アイコン左」「アイコン上」の2種類以外を受け付けない
- テンプレートを読み込む共通処理でも、フォルダをさかのぼる指定を拒否する
脆弱性の種類
CWE-98 PHPプログラムにおけるinclude/require文のファイル名の不適切な制御 (ローカルファイルインクルージョン)
推奨対応事項
該当バージョンのプラグインをご利用の場合、以下の対応を推奨します。
- プラグインの更新
- 速やかに、プラグインを対策バージョン(2.8.188 以降)へ更新してください。
- 被害確認
- WAF・送信内容のログ:送信内容まで記録できるWAFやサーバーのログがある場合は、「
geodir_cpt_tags」と「design_type」を含み、かつ「../」(または記号を「%」付きの英数字に置き換えた表記)を含む通信がないか確認してください。該当する通信は、攻撃を試みた痕跡です。 - アクセスログ:通常のアクセスログでは送信内容が記録されません。その場合は、「
/wp-admin/admin-ajax.php」へのPOST通信(データを送信する通信)が、同じ送信元から短時間に集中していないかを確認してください。 - デバッグログ:不具合調査用の設定(WP_DEBUG)を有効にしている場合は、
debug.logなどに「geodir_get_template was called incorrectly」と「does not exist」を含み、ファイルパスに「../」が入った記録がないか確認してください。存在しないファイルを指定した攻撃の試行が記録されます。 - 不審なファイル:アップロード用フォルダ(
wp-content/uploads)に、身に覚えのない「.php」ファイルがないか確認してください。本脆弱性と組み合わせて実行される可能性があるファイルです。
- WAF・送信内容のログ:送信内容まで記録できるWAFやサーバーのログがある場合は、「
- セキュリティ対策の強化(任意)
- WAF(Web Application Firewall:不正な通信を検知・遮断する仕組み)を導入していれば、フォルダをさかのぼる指定を含む通信の遮断に有効です。ただし、WAFですべての攻撃を確実に防げるわけではないため、根本的な対策となるプラグインの更新を優先してください。
⇒ 攻撃の痕跡や不審なPHPファイルが確認された場合は、プラグインの更新とあわせて、WordPressの専門家への相談を推奨します。
影響を受けるバージョン
GeoDirectory 2.8.187 までのバージョン
脆弱性情報 (CVE-ID)
CVE-2026-104899
(公開日 2026年10月10日 更新日 2026年10月11日)
脆弱性の深刻度 (CVSS v3)
基本値: 8.1 (重要) [Wordfence]
脆弱性脅威度(EPSS)
CVE-2026-104899 悪用確率 0.64% (上位49%) 2026年11月3日時点
ソフトウェア脆弱性情報の著作権に関する注意事項
This record contains material that is subject to copyright.
Copyright 2012-2026 Defiant Inc.
License: Defiant hereby grants you a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare derivative works of, publicly display, publicly perform, sublicense, and distribute this software vulnerability information. Any copy of the software vulnerability information you make for such purposes is authorized provided that you include a hyperlink to this vulnerability record and reproduce Defiant’s copyright designation and this license in any such copy. Read more.
Copyright 1999-2026 The MITRE Corporation
License: CVE Usage: MITRE hereby grants you a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare derivative works of, publicly display, publicly perform, sublicense, and distribute Common Vulnerabilities and Exposures (CVE®). Any copy you make for such purposes is authorized provided that you reproduce MITRE’s copyright designation and this license in any such copy. Read more.
「WordPressセキュリティ保守」をご利用のお客様へ

WordPress
GeoDirectory プラグインをご利用中のお客様には、対策バージョンへの更新状況および推奨対応事項について、順次メールにてご案内しております。
本記事の作成について
本記事は、対象プラグインの公開ソースコードおよびバージョン間の差分を解析し、その結果に基づいて作成しています。
解析および文章作成の過程では生成AIを利用し、内容は当社の担当者が確認したうえで公開しています。



