GeoDirectory <= 2.8.199 - Authenticated (Subscriber+) Stored Cross-Site Scripting via 'post_content' Parameter
- Last modified
- Where the record stands: published, rejected by its publisher, or superseded by another id.What do these mean? →
- published
- Whether CISA lists it in its Known Exploited Vulnerabilities catalog: proof that attackers are using it.What do these mean? →
- Not listed in CISA KEV
- Whether working attack code is public (Exploit-DB, Metasploit, Nuclei or GitHub). Public code makes attacks easier.What do these mean? →
- None on Exploit-DB, Metasploit or GitHub
- Exploitation: none
- Automatable: no
- Technical impact: partial
Summary
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.
Timeline
- CVE published
- First seen by cve.now
- CISA SSVC assessment
Exploitation: none · Automatable: no · Technical impact: partial
- Record last updated
Affected versions
- paoltaia GeoDirectory – WP Business Directory Plugin and Classified Listings Directory
through 2.8.199
References 9
plugins.trac.wordpress.org
- browser/geodirectory/tags/2.8.193/includes/post-functions.php#L2032
- browser/geodirectory/tags/2.8.193/includes/class-geodir-post-data.php#L823
- browser/geodirectory/tags/2.8.193/includes/formatting-functions.php#L453
- browser/geodirectory/tags/2.8.193/vendor/ayecode/wp-ayecode-ui/includes/inc/bs5-js.php#L256
- browser/geodirectory/tags/2.8.193/includes/class-geodir-ajax.php#L821
- browser/geodirectory/tags/2.8.193/includes/class-geodir-post-data.php#L1666
- changeset/3773530/geodirectory/trunk/vendor/ayecode/wp-ayecode-ui/includes/inc/bs5-js.php