Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessObtain Contributor-level account
-
DeliveryInsert map shortcode with malicious style attribute
-
ExploitPayload stored unsanitized in content
-
ExecutionVictim views affected content
-
ImpactScript executes in victim browser session
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A05:2025 - Injection
ASVS 5.0
V1 - Encoding and Sanitization Output encoding, context-aware escaping
MITRE ATT&CK
2 techniques across 2 tactics: Initial Access, Execution The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up. |
| Exploitation Conditions | Requires an authenticated account with the Contributor role or higher on the target WordPress site, and the attacker must be able to place a GeoDirectory map shortcode whose style-related attributes are not sanitized/escaped before output within a style attribute. Exploitation only fires when another user (e.g., an administrator or site visitor) subsequently views the content holding the stored payload. Limiting factors: this is not remote-unauthenticated - a Contributor-level (or higher) account is mandatory, victim interaction (viewing the affected content) is required, and sites that do not grant untrusted users Contributor access or do not use the map shortcode are substantially less exposed. |
| Impact | This is a stored XSS (CWE-79) in the GeoDirectory WordPress plugin that a moderately-privileged user can leverage to execute script in the browser of anyone viewing the affected content. The signals point to a real but non-urgent, authentication-gated issue rather than a mass-exploitation emergency. EPSS is low at 0.21% (10th percentile), there is no CISA KEV listing, and the vuln.today decision label is 'this_month' - not 'act_now' or 'emergency'. A public PoC reference (WPScan) exists but is not verified as working exploit code, so POC availability must not be read as active exploitation. One important internal conflict: the supplied CVSS vector is CVSS:3.1/AV:N/AC:L/PR:H/UI:R/S:U/C:H/I:H/A:H (score 6.8), which claims high privileges (PR:H), unchanged scope (S:U), and full C:H/I:H/A:H impact - yet the description states exploitation requires only the Contributor role ('and above'), which is a low-privilege account, and the nature of stored XSS (script running in a different user's browser) is normally a scope change with partial impact. The provided vector therefore appears inconsistent with the described mechanism (PR should likely be PR:L, scope likely S:C, and C/I/A likely Low) - verify the metrics with the vendor/WPScan. Net: treat as a medium-severity, authenticated stored XSS warranting patching this cycle, not a drop-everything priority. |
| Exploit ScenarioDerived | An attacker who holds (or obtains) a Contributor-level account on a GeoDirectory site inserts a GeoDirectory map shortcode whose style-related attributes carry an unsanitized XSS payload. When an administrator or other user later views that post/listing, the injected script runs in their authenticated browser session, enabling session/cookie theft or admin-level actions. A WPScan PoC reference exists but is not verified as working exploit code; the network attack vector is offset by the need for an authenticated account and for a victim to view the content. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Oct 24, 2026
Stored cross-site scripting in the GeoDirectory WordPress plugin before 2.8.194 allows an authenticated user holding the Contributor role or higher to place a map shortcode whose style-related attributes are not sanitised or escaped before being written into a style attribute, so the injected script runs in the browser of any user who later views that content. Exploitation requires that the attacker can author content containing the map shortcode and that a victim - an administrator reviewing the post or a front-end visitor - subsequently loads it; sites that do not grant untrusted users Contributor access, or that do not use the map shortcode, are materially less exposed. A public proof-of-concept reference exists (WPScan advisory) but is not verified as working exploit code, EPSS is low at 0.21% (10th percentile), there is no CISA KEV listing, and the vendor has released a fix in 2.8.194.
RemediationAI
Vendor-released patch: upgrade GeoDirectory to version 2.8.194 or later - this is the only complete fix, since the defect is in the plugin's shortcode rendering path and cannot be corrected by configuration alone. After upgrading, audit existing posts, drafts and revisions for stored map shortcodes with style attributes, because upgrading removes the injection vector but does not remove payloads already persisted in the database. Where an immediate update is not possible, reduce exposure along the prerequisites identified in the assessment: restrict Contributor-and-above accounts to users who are trusted to author content on the site, and review pending drafts submitted by lower-privileged authors before they are published or previewed by an administrator, accepting that this adds editorial overhead and does not eliminate risk for multi-author sites. Sites that do not use the GeoDirectory map shortcode can remove or disable that shortcode rendering path as a stopgap, with the trade-off that any legitimate maps in existing content stop displaying. Advisory details are available at https://wpscan.com/vulnerability/a46bd6e9-4037-4213-b36d-e418a2ed41b7/.
Affected VersionsENISA
Affected Packages
Source: OSV (Open Source Vulnerabilities)
Affects your stack
Affects 1 package in euvd
Checking this CVE against your own stacks and servers is part of the Basic plan and up.
Technical ContextAI · show details
The flaw is a CWE-79 cross-site scripting issue rooted in missing output encoding: shortcode attributes belonging to GeoDirectory's map shortcode are concatenated into an inline style attribute without sanitisation or escaping, so attacker-controlled characters break out of the CSS context and inject markup or script. Because the payload is persisted with the post content rather than reflected, the malicious style attribute is rendered on every subsequent view of that page. WordPress's Contributor role is a realistic delivery path: such accounts can create and submit posts (and preview them) without publishing rights, which is why the assessed vector is authenticated (PR:L) with no victim-side prerequisite beyond loading the content, while the vendor-style vector supplied with the CVE scored it at PR:H/UI:R. The affected CPE resolves to cpe:2.3:a:unknown:geodirectory with the vendor field unresolved, so the authoritative version boundary comes from the advisory: GeoDirectory 0 through 2.8.193, fixed in 2.8.194.
Know when Geodirectory gets its next vulnerability
- Watch products and get an email when something new is published
- Check this CVE against your own stack and servers
- Exploit and PoC references, threat intelligence from 22 sources
No credit card · 7-day full trial
Severity by source
AV:N/AC:L/PR:H/UI:R/S:U/C:H/I:H/A:H
Contributor account needed (PR:L), script runs in a victim's browser across a trust boundary (S:C) with limited C/I impact and no availability loss; typical stored XSS profile.
Primary rating from Vendor (WPScan).
CVSS VectorVendor: WPScan
Lifecycle Timeline
3DescriptionCVE.org
The GeoDirectory WordPress plugin before 2.8.194 does not sanitise and escape some of its map shortcode attributes before outputting them within a style attribute, allowing users with the Contributor role and above to perform Stored Cross-Site Scripting attacks that execute in the context of any user viewing the affected content.
Threat Intelligence Overview
How this decision was reached
The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.
What every action level means
SSVC AssessmentENISA
Priority Score
Attack Technique
Cross-Site Scripting occurs when an application accepts untrusted data and sends it to a web browser without proper validation or encoding.
More in Geodirectory
View allGeoDirectory, a WordPress directory plugin, writes administrator-supplied text into a generated PHP file inside its own
Information disclosure in the GeoDirectory WordPress plugin (before 2.8.168) exposes the email addresses of all register
Authenticated path traversal in the GeoDirectory WordPress plugin before 2.8.194 allows any user holding a Subscriber-le
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
SQL injection in the GeoDirectory WordPress plugin (versions 2.8.174 and earlier) lets unauthenticated remote attackers
GeoDirectory WordPress plugin versions before 2.8.194 fail to enforce status, ownership and password checks in an unauth
Unauthenticated visitors to WordPress sites running GeoDirectory before 2.8.194 can retrieve the title, permalink and ca
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
EUVD-2026-109215
GHSA-47rj-2gqg-xch4
NVD
CVE.org
EPSS
Vulnrichment
Exploit-DB