GeoDirectory <= 2.8.187 - Unauthenticated Local File Inclusion via 'design_type' Parameter
Strategic Overview
- Status
- Patched in 2.8.188
- Affected Version
<= 2.8.187- CVSS
- 8.1High
- Weakness type
- CWE-98 · Improper Control of Filename for Include/Require Statement in PHP Program ('PHP Remote File Inclusion')
- CVE
CVE-2026-104899
At a glance
CVE-2026-104899 is a high-severity Improper Control of Filename for Include/Require Statement in PHP Program ('PHP Remote File Inclusion') vulnerability in the GeoDirectory WordPress plugin, affecting versions <= 2.8.187. It carries a CVSS score of 8.1 (reachable over the network; high confidentiality, integrity, availability impact). Exploitation requires no authentication. The issue is fixed in version 2.8.188; sites on affected versions should update now. Disclosed October 2026, reported by Wordfence PRISM.
Vulnerability Overview
The GeoDirectory – WP Business Directory Plugin and Classified Listings Directory plugin for WordPress is vulnerable to Local File Inclusion in all versions up to, and including, 2.8.187 via the 'design_type' parameter parameter. This makes it possible for unauthenticated attackers to include and execute arbitrary .php files on the server, allowing the execution of any PHP code in those files. This can be used to bypass access controls, obtain sensitive data, or achieve code execution in cases where .php file types can be uploaded and included. The required nonce is trivially obtainable by any anonymous visitor, as the geodir_basic_nonce value is localized to every public frontend page via the geodir_params script object, meaning no authentication, user interaction, or specific site content is required to exploit this vulnerability.
Technical Analysis
The vector marks this flaw as remotely reachable over the network, and no privileges on the target site, and no interaction from a victim user. A successful exploit has high impact on confidentiality, integrity, availability — full site compromise territory.
CWE-98: Improper Control of Filename for Include/Require Statement in PHP Program ('PHP Remote File Inclusion')
GeoDirectory <= 2.8.187 carries this weakness at design_type, and reaching it takes no account at all. PHP file inclusion means a path used by include or require is built from request data, so the file that gets executed is under the caller's influence.
Including an attacker-influenced file executes its contents, which is why this class is routinely chained with an upload or log-poisoning step to reach code execution. For GeoDirectory the fix is 2.8.188: builds <= 2.8.187 are affected, anything from 2.8.188 onward is not.
Remediation
Update to version 2.8.188, or a newer patched version
How does WordSec protect against this?
Requests carrying this pattern arrive without a session, so nothing upstream of the firewall gets a chance to reject them: WordSec's web application firewall inspects request payloads before WordPress loads them. Classes like this one can leave something behind, so the staged malware scanner is the second half: it looks for dropped files and modified code rather than for the request that created them. None of that substitutes for the fix: GeoDirectory 2.8.188 closes this, and updating the plugin is the step that ends it.
- Firewall
- Scanner
- Login Security
External References
Related records
Other vulnerabilities in GeoDirectory – WP Business Directory Plugin and Classified Listings Directory
- 9.9CVE-2024-43145: GeoDirectory <= 2.3.61 SQL Injection
CVE-2024-43145 - 8.1CVE-2026-19091: GeoDirectory <= 2.8.169 Arbitrary File Deletion
CVE-2026-19091 - 7.5CVE-2026-103913: GeoDirectory <= 2.8.186 SQL Injection
CVE-2026-103913 - 7.5CVE-2026-84813: GeoDirectory SQL Injection
CVE-2026-84813 - 7.5CVE-2026-54831: GeoDirectory SQL Injection
CVE-2026-54831 - 7.5CVE-2026-39512: GeoDirectory SQL Injection
CVE-2026-39512 - 7.5CVE-2024-13507: GeoDirectory SQL Injection
CVE-2024-13507 - 7.2CVE-2026-66604: GeoDirectory Stored XSS
CVE-2026-66604
Vulnerability data © Defiant, Inc., provided under the Wordfence Intelligence T&C