Severity by source
AV:N/AC:L/PR:H/UI:R/S:U/C:L/I:L/A:N
Editor authentication required (PR:H) and admin must visit the poisoned page (UI:R); only limited confidentiality and integrity impact via stored XSS with no availability effect.
Primary rating from Vendor (WPScan).
CVSS VectorVendor: WPScan
CVSS:3.1/AV:N/AC:L/PR:H/UI:R/S:U/C:L/I:L/A:N
Lifecycle Timeline
4DescriptionCVE.org
The GeoDirectory WordPress plugin before 2.8.110 does not sanitise and escape a place-category setting before outputting it back in an admin page, allowing high-privilege users such as editors and above to perform Stored Cross-Site Scripting attacks even when the unfiltered_html capability is disallowed (for example in a multisite setup).
AnalysisAI
Stored Cross-Site Scripting in GeoDirectory WordPress plugin before 2.8.110 allows authenticated editors and higher-privileged users to persist malicious JavaScript via the place-category setting, which is rendered unsanitized on admin pages. The vulnerability is specifically significant in WordPress multisite deployments where the unfiltered_html capability is intentionally revoked for editors, as it bypasses that restriction through the plugin's own inadequate output handling. A public proof-of-concept exists via WPScan, though EPSS at 0.16% (6th percentile) and SSVC exploitation status of 'none' indicate no confirmed active exploitation at time of analysis.
Technical ContextAI
The flaw is classified under CWE-79 (Improper Neutralization of Input During Web Page Generation - Stored XSS), arising from the GeoDirectory plugin's failure to sanitize and escape the place-category setting value before rendering it in WordPress admin pages. GeoDirectory (CPE: cpe:2.3:a:unknown:geodirectory:*:*:*:*:*:*:*:*) is a WordPress directory listing plugin. WordPress multisite networks typically restrict the unfiltered_html capability for sub-site editors as a security boundary; this vulnerability undermines that boundary because the XSS vector lies within the plugin's output logic rather than WordPress core's input filtering pipeline. The attack surface is the admin UI, and persistence of the payload in the database is what makes this stored rather than reflected XSS.
RemediationAI
Update the GeoDirectory WordPress plugin to version 2.8.110 or later, which contains the vendor-released patch addressing this stored XSS. This is the definitive and recommended fix. If immediate patching is not feasible, restrict the editor role to only fully trusted users, and consider using a role management plugin to remove place-category edit permissions for sub-administrator roles as a temporary compensating control - note this workaround may disrupt legitimate content management workflows. The WPScan advisory with full technical details is available at https://wpscan.com/vulnerability/bb6daced-3ee3-4ec7-a221-9981cd85285a/. No workaround fully substitutes for upgrading to 2.8.110.
More in Geodirectory
View allInformation disclosure in the GeoDirectory WordPress plugin (before 2.8.168) exposes the email addresses of all register
The GeoDirectory WordPress plugin before 2.8.120 does not validate and escape some of its shortcode attributes before o
The GeoDirectory Business Directory WordPress plugin before 2.1.1.3 was vulnerable to Authenticated Stored Cross-Site Sc
Unauthenticated SQL injection in the GeoDirectory WordPress plugin (versions up to and including 2.8.152) allows remote
Cross-Site Request Forgery in the GeoDirectory WordPress plugin (versions ≤ 2.8.176) enables remote unauthenticated atta
Missing Authorization vulnerability in AyeCode - WP Business Directory Plugins GeoDirectory allows Exploiting Incorrectl
Improper Neutralization of Special Elements used in an SQL Command ('SQL Injection') vulnerability in AyeCode Ltd GeoDir
Improper Neutralization of Special Elements used in an SQL Command ('SQL Injection') vulnerability in AyeCode - WordPres
The GeoDirectory WordPress plugin before 2.2.24 does not properly sanitise and escape a parameter before using it in a S
Cross-site scripting in the GeoDirectory WordPress plugin (versions ≤ 2.8.173) enables unauthenticated remote attackers
Stored Cross-Site Scripting in the GeoDirectory WordPress plugin (versions <= 2.8.172) enables authenticated contributor
Missing authorization in the GeoDirectory WordPress plugin (through v2.8.157) permits unauthenticated remote attackers t
Same weakness CWE-79 – Cross-site Scripting (XSS)
View allShare
External POC / Exploit Code
Leaving vuln.today
EUVD-2025-210616
GHSA-x6r7-w9f9-44fh