CVE-2026-119113: GeoDirectory (WordPress plugin) · Cross-site Scripting
Affects GeoDirectory (WordPress plugin)Source CVE Database V5
Not known to be exploited · CVSS 6.4 Medium.
Data as of 30 Oct 2026, 18:33 UTC
Thin evidence
One scorer or none| CNA (Wordfence) | CVSS 3.1 | 6.4 |
|---|
CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:C/C:L/I:L/A:NExploitation evidence
Disclosed: evidence found.
CVE published 30 Oct 2026
Detectable: no evidence on record.
No public nuclei template indexed
Weaponized: no evidence on record.
No public exploit code indexed in Metasploit or Exploit-DB
Exploited in the wildExploited: no evidence on record.
Not in CISA KEV and no source reports exploitation
Observed by OffSeq MirageSeen by Mirage: no evidence on record.
No attack traffic recorded by OffSeq Mirage sensors
A missing step is not evidence of safety. Sources: cve.org (opens in a new tab), the Metasploit, Exploit-DB and nuclei-templates index as of 30 Oct 2026.
What to do
Affected software
| Product | Affected | Fixed in |
|---|---|---|
| paoltaiaGeoDirectory – WP Business Directory Plugin and Classified Listings Directory | Affected
| Fixed in– |
AI-suggested
Users should monitor the vendor's advisories for updates. Until a fix is available, restrict Subscriber-level user permissions where possible and consider disabling or limiting the use of listing descriptions that accept HTML input. Applying strict input validation or sanitization on user-generated content may reduce risk. Review and harden the configuration of the AyeCode UI library popover usage to avoid unsafe HTML rendering.
Description
The GeoDirectory – WP Business Directory Plugin and Classified Listings Directory plugin for WordPress is vulnerable to Stored Cross-Site Scripting via the listing description (post_content) in versions up to, and including, 2.8.199 This is due to insufficient input sanitization on save (the bundled geodir_kses_safe_embed_attributes() helper only neutralises data-embed-url, data-src and data-embed, while WordPress core wp_kses_post permits data-* attributes on standard HTML tags) combined with the AyeCode UI library initializing every [data-bs-toggle="popover-html"] element with { html: true, sanitize: false }, which inserts the attacker-controlled data-bs-content value into the popover body as HTML at render time. This makes it possible for authenticated attackers, with Subscriber-level access and above, to inject arbitrary web scripts in pages that will execute whenever a user accesses an injected page.
References
- wordfence.com/threat-intel/vulnerabilities/id/df5eb1b8-880d-4d7e-bdca-69bbd9c1ce5e?source=cve (opens in a new tab)
- plugins.trac.wordpress.org/browser/geodirectory/tags/2.8.193/includes/post-functions.php (opens in a new tab)
- plugins.trac.wordpress.org/browser/geodirectory/tags/2.8.193/includes/class-geodir-post-data.php (opens in a new tab)
- plugins.trac.wordpress.org/browser/geodirectory/tags/2.8.193/includes/formatting-functions.php (opens in a new tab)
- plugins.trac.wordpress.org/browser/geodirectory/tags/2.8.193/vendor/ayecode/wp-ayecode-ui/includes/inc/bs5-js.php (opens in a new tab)
- plugins.trac.wordpress.org/browser/geodirectory/tags/2.8.193/includes/class-geodir-ajax.php (opens in a new tab)
- plugins.trac.wordpress.org/browser/geodirectory/tags/2.8.193/includes/class-geodir-post-data.php (opens in a new tab)
- github.com/AyeCode/geodirectory/archive/refs/heads/master.zip (opens in a new tab)
- plugins.trac.wordpress.org/changeset/3773530/geodirectory/trunk/vendor/ayecode/wp-ayecode-ui/includes/inc/bs5-js.php (opens in a new tab)