# CVE-2026-93897: GeoDirectory stored cross-site scripting in custom fields

Source: https://junglewise.ai/threats/cve-2026-93897-the-geodirectory-wp-business-directory-plugin-and-classified  
Publisher: Junglewise Threat Intelligence, https://junglewise.ai/threats  
Published: 2026-09-25. Updated: 2026-09-26  
License: CC BY 4.0 with a link back

CVE-2026-93897 · Severity: medium · CVSS 6.4 · Published 2026-09-25

GeoDirectory is a WordPress plugin that enables businesses to create online directories and classified listings. A flaw in how the plugin handles text-based custom fields (like phone numbers) allows attackers with basic account access to inject malicious scripts that execute when other users view the listings. This could lead to account hijacking, data theft, or malware distribution.

Vendors: [GeoDirectory](https://junglewise.ai/threats/vendors/geodirectory).

## Quick answers

**Is CVE-2026-93897 exploited in the wild?** No. Junglewise Threat Intelligence has no report of CVE-2026-93897 being exploited in the wild.

**How severe is CVE-2026-93897?** Medium severity, with a CVSS score of 6.4, published 25 September 2026.

**Which products and versions are affected?** GeoDirectory – WP Business Directory Plugin up to and including 2.8.181.

**Is there a fix for CVE-2026-93897?** No fixed version is recorded yet. Check the vendor's advisory in the references below. If you run it, Junglewise drafts a mitigation that fits your setup and applies it once you approve, with senior security engineers behind it.

**How is CVE-2026-93897 attacked?** It is attacked over the network, in a web application.

**Am I affected by CVE-2026-93897?** Check whether you run GeoDirectory – WP Business Directory Plugin at an affected version. Junglewise does that check for you around the clock: connect your code, cloud and domains, and it matches new vulnerabilities like this one against what you actually run and tells you when one reaches you.

## Technical details

Stored XSS vulnerability in the geodir_save_post AJAX endpoint due to insufficient input sanitization and output escaping of text-type custom fields. Authenticated attackers with subscriber-level access or above can bypass the strpos()-based tag-stripping check by using entity-encoded angle brackets (e.g., &lt;img src=x onerror=alert(1)&gt;), persisting arbitrary JavaScript payloads that execute on page access. A fix is available in versions after 2.8.181.

## Affected products

- GeoDirectory GeoDirectory – WP Business Directory Plugin up to and including 2.8.181

## Timeline

- 2026-09-25: disclosed

## References

- [https://plugins.trac.wordpress.org/browser/geodirectory/tags/2.8.181/includes/class-geodir-ajax.php](https://plugins.trac.wordpress.org/browser/geodirectory/tags/2.8.181/includes/class-geodir-ajax.php)
- [https://plugins.trac.wordpress.org/browser/geodirectory/tags/2.8.181/includes/formatting-functions.php](https://plugins.trac.wordpress.org/browser/geodirectory/tags/2.8.181/includes/formatting-functions.php)

## Related threats

- [GeoDirectory WordPress plugin stored cross-site scripting](https://junglewise.ai/threats/cve-2026-110703-the-geodirectory-wp-business-directory-plugin-and-classified)
