Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessRegister/obtain Contributor account
-
DeliverySubmit post badge shortcode with malicious attribute
-
ExploitPayload stored unescaped in inline event handler
-
ExecutionAdmin views listing and clicks badge
-
PersistScript executes in admin browser
-
ImpactSession/account takeover
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 the GeoDirectory plugin (version before 2.8.196) installed, plus an authenticated account holding the Contributor role or higher that can use the post badge shortcode and control its attribute value. Exploitation is not fully automatic: a victim (typically an administrator) must view and click the rendered badge for the stored payload in the inline event handler to fire (UI:R). Limiting factors: the site must permit Contributor-level (or higher) accounts to untrusted users, the attacker must be authenticated, and victim click interaction is required - so sites that do not expose Contributor accounts to outsiders face substantially lower real risk. |
| Impact | This is a moderate, not emergency, priority. The vuln.today decision label is 'this_month', EPSS is low at 0.17% (6th percentile), and there is no CISA KEV listing, so there is no evidence of active or widespread exploitation - exploitation status is 'no public exploit identified at time of analysis' (the only reference is the WPScan advisory, not verified working exploit code). The supplied CVSS of 6.8 uses PR:H, but the description states the attacker only needs the Contributor role 'and above'; Contributor is a low-privilege WordPress role, so PR:H appears overstated and PR:L is more accurate - verify, because this materially changes the realism of exploitation (self-registration/contributor accounts are common on content sites). The supplied impact set C:H/I:H/A:H is also aggressive for a stored XSS; real impact depends on compromising an administrator session. Signals are internally consistent on 'real but low-urgency': network vector and low complexity raise theoretical reach, but PR (authenticated) plus UI:R (victim must click the badge) plus low EPSS and no KEV point to a targeted, not mass, threat. Net: patch on a normal cycle, prioritize sites that allow untrusted Contributor-level accounts. |
| Exploit ScenarioDerived | An attacker obtains or registers a Contributor-level account on a GeoDirectory site and submits a post badge shortcode whose attribute carries a JavaScript payload that lands unescaped inside an inline event handler. When an administrator or other user later views the listing and clicks the badge, the stored script executes in their browser, potentially hijacking the admin session. No verified public exploit code is identified; only the WPScan advisory reference exists. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Oct 28, 2026
Stored cross-site scripting in the GeoDirectory WordPress plugin before 2.8.196 lets authenticated users with the Contributor role or higher inject script through a post badge shortcode attribute that is written into an inline event handler without JavaScript-context escaping. The payload persists in the badge and fires when a victim - typically an administrator - views and clicks it, so an attacker must first obtain a Contributor-or-higher account and then rely on victim interaction. This is a moderate, not emergency, priority: EPSS is 0.17% (6th percentile), there is no CISA KEV listing, and no public exploit was identified at time of analysis; the vendor has released a fix in 2.8.196.
RemediationAI
Update the GeoDirectory plugin to 2.8.196 or later; a vendor-released patch is available and updating is the complete fix, with the vendor advisory and version confirmation at https://wpscan.com/vulnerability/f228b40e-a0ca-46f0-8173-45e39958a69d/. Because exploitation requires an authenticated Contributor-or-higher account that can use the post badge shortcode, risk is substantially lower on sites that do not grant Contributor accounts to untrusted parties - reviewing and reducing Contributor-level access for external or untrusted users limits exposure until the update is applied, though it does not remove the underlying flaw. No alternative technical mitigation is documented in the available sources; note that the exploit only fires when a victim clicks the rendered badge, so administrative users should avoid interacting with badge content on unpatched installations.
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
GeoDirectory is a WordPress plugin that adds directory listings and related display components, including shortcodes rendered into front-end markup. The flaw is CWE-79 (improper neutralization of input during web page generation), specifically the stored variant: a shortcode attribute belonging to the post badge feature is not escaped for a JavaScript context before being placed inside an inline event handler. Because the value lands in an executable attribute position, HTML-escaping alone is insufficient - JavaScript-context escaping (or data-attribute plus delegated handler patterns) is required. The attacker-supplied value is saved server-side and re-emitted to every visitor who loads the affected badge, which is why a low-privileged Contributor can reach higher-privileged viewers; the independent assessment scores this S:C (scope change) with C:L/I:L/A:N under CVSS:3.1/AV:N/AC:L/PR:L/UI:R, while the published vector is CVSS:3.1/AV:N/AC:L/PR:H/UI:R/S:U/C:H/I:H/A:H (6.8) - both agree the attack requires a victim to click the rendered badge (UI:R) and that no unauthenticated path exists.
Know when WordPress 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 is a low-privilege authenticated role so PR:L (not PR:H); the victim must click the badge (UI:R); XSS executes in the victim's browser crossing a trust boundary (S:C) with limited direct confidentiality/integrity impact and no availability loss.
Primary rating from Vendor (wpscan).
CVSS VectorVendor: wpscan
Lifecycle Timeline
4DescriptionCVE.org
The GeoDirectory WordPress plugin before 2.8.196 does not properly escape a post badge shortcode attribute for a JavaScript context before placing it in an inline event handler, allowing users with the Contributor role and above to perform Stored Cross-Site Scripting attacks against anyone who clicks the badge, including administrators.
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.
The mailSend function in the isMail transport in PHPMailer before 5.2.18 might allow remote attackers to pass extra para
The isMail transport in PHPMailer before 5.2.20 might allow remote attackers to pass extra parameters to the mail comman
The Backup Migration plugin for WordPress is vulnerable to Remote Code Execution in all versions up to, and including, 1
The Hash Form - Drag & Drop Form Builder plugin for WordPress is vulnerable to arbitrary file uploads due to missing fil
Authentication bypass in the LiteSpeed Cache WordPress plugin (versions prior to 6.5.0.1) allows unauthenticated remote
The GiveWP - Donation Plugin and Fundraising Platform plugin for WordPress is vulnerable to PHP Object Injection in all
The Simple File List plugin for WordPress through version 4.2.2 contains an unauthenticated remote code execution vulner
The AI Engine WordPress plugin through version 3.1.3 exposes Bearer Token values through the /mcp/v1/ REST API endpoint
The SureTriggers WordPress plugin through version 1.0.82 contains a privilege escalation vulnerability that allows unaut
The Ninja Forms plugin before 2.9.42.1 for WordPress allows remote attackers to conduct PHP object injection attacks via
The Business Directory Plugin - Easy Listing Directories for WordPress plugin for WordPress is vulnerable to time-based
Remote code execution in WordPress 6.9.x (before 6.9.5) and 7.0.x (before 7.0.2) arises from a REST API batch endpoint r
EUVD-2026-111726
GHSA-8x4j-963r-3gx3
NVD
CVE.org
EPSS
Exploit-DB