# GeoDirectory <= 2.8.202 - Unauthenticated Reflected Cross-Site Scripting via Location Replacement Variables

- **ID:** WPSEC-2026-2725
- **Plugin:** GeoDirectory – WP Business Directory Plugin and Classified Listings Directory (`geodirectory`), https://wordpress.org/plugins/geodirectory/
- **Affected versions:** all versions before 2.8.203
- **Fixed in:** 2.8.203 (Update to 2.8.203 or later.)
- **Severity:** Medium 6.1 (CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:L/I:L/A:N)
- **Weakness:** CWE-79
- **Usage among sites WPSec scans:** plugin Low, affected versions Low (as of 2026-11-07)
- **Attack surface analysis:** https://attacksurface.wpsec.com/plugin/geodirectory
- **Fix released:** 2026-11-06
- **Published:** 2026-11-07
- **URL:** https://wpsec.com/vuln/WPSEC-2026-2725/

## Description

The GeoDirectory plugin for WordPress is vulnerable to Reflected Cross-Site Scripting via the 'country', 'region', 'city' and 'neighbourhood' query parameters in all versions up to, and including, 2.8.202, due to insufficient input sanitization and output escaping. The values are inserted into the location replacement variables (such as %%location_single%% and %%in_location_single%%) used in GeoDirectory page titles, meta titles and category descriptions. This makes it possible for unauthenticated attackers to inject arbitrary web scripts in pages that execute if they can successfully trick a user into performing an action such as clicking on a crafted link.

## References

- https://wpsec.com/vuln/WPSEC-2026-2725/
- https://plugins.svn.wordpress.org/geodirectory/tags/2.8.203/
- https://wordpress.org/plugins/geodirectory/

Source: WPSec, https://wpsec.com/vuln/WPSEC-2026-2725/

License: CC BY 4.0 (https://creativecommons.org/licenses/by/4.0/). Free to use, share and adapt, also commercially, if you credit WPSec and link to this advisory.
