Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessRegister subscriber account
-
DeliverySubmit listing with XSS in Contact Email field
-
ExploitAdmin approves pending listing
-
ExecutionPayload stored in single-listing output
-
PersistScript executes in visitor/admin browsers
-
ImpactSession or action hijack in site context
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 subscriber-level access or above (PR:L) plus a chain of administrator-controlled preconditions that significantly limit exploitation: the administrator must have added and configured the 'Contact Email' custom field (htmlvar_name 'email') to render on the public single-listing output page, AND the administrator must subsequently approve the attacker's submitted listing before the payload becomes live. Practically this means the site must allow low-privilege user registration and user-submitted listings, and must use the Contact Email field in public output. Sites that do not expose that field publicly, auto-reject/do not approve untrusted submissions, or disable open registration are not realistically exploitable. This is not a default-configuration, remote-unauthenticated issue. |
| Impact | This is a moderate, conditionally-exploitable Stored XSS (CWE-79) in the GeoDirectory WordPress plugin, and the signals are internally consistent rather than conflicting. The NVD/Wordfence CVSS 3.1 vector (AV:N/AC:L/PR:L/UI:N/S:C/C:L/I:L/A:N = 6.4 Medium) correctly reflects an authenticated (subscriber-level, PR:L) stored payload that crosses scope (S:C) to execute in the browsers of other site visitors with limited confidentiality/integrity impact. However, the raw CVSS understates the real precondition burden: per the description, exploitation only works if an administrator has (a) added and configured the Contact Email custom field to render on the public single-listing page AND (b) manually approves the attacker's submitted listing - two conditions outside the attacker's control that argue for a higher attack complexity than the AC:L in the published vector. No EPSS score, KEV entry, or public POC was provided in the intelligence, so exploitation is 'no public exploit identified at time of analysis.' Net judgment: this is NOT a drop-everything priority. It is a legitimate but low-urgency patch - a privilege-requiring, config-dependent, approval-gated stored XSS with only partial impact. Prioritize normal patch-cycle remediation rather than emergency response, but note that sites allowing open user registration plus listing submission are the realistic exposure surface. |
| Exploit ScenarioDerived | On a GeoDirectory site that permits subscriber registration and public listing submissions, an attacker registers a low-privilege account and submits a business/classified listing whose Contact Email custom field contains a crafted XSS payload. If the administrator has configured that field to appear on the public single-listing page and then approves the pending listing, the script executes in the browser of every visitor (including administrators) who views that listing. No public exploit code was identified, but the technique is a standard stored-XSS listing-submission flow. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Oct 10, 2026
Stored cross-site scripting in the GeoDirectory WordPress plugin (all versions up to and including 2.8.188) allows authenticated users with subscriber-level access or above to plant arbitrary JavaScript in listing data via the 'Contact Email' custom field, which then executes in the browser of anyone viewing the affected public single-listing page. Exploitation is not a default-configuration issue: the site administrator must first have added and configured the Contact Email custom field (htmlvar_name 'email') to render on public single-listing output and must subsequently approve the attacker's submitted listing before the payload becomes live, which is why the independent assessment rates the vector AC:H and describes this as conditionally exploitable rather than broadly reachable. There is no public exploit code or confirmed active exploitation at time of analysis, and no EPSS or KEV signal accompanies this record; residual risk is concentrated in sites that permit low-privilege registration, accept untrusted listing submissions, and expose the Contact Email field publicly.
RemediationAI
Apply the vendor fix: the vulnerable output path is corrected by changeset 3728472 for geodirectory trunk (https://plugins.trac.wordpress.org/changeset/3728472/geodirectory/trunk/includes/custom-fields/output-functions.php), so update the plugin to the earliest release that contains this change - since 2.8.188 is explicitly listed as affected, do not treat 2.8.188 as fixed and confirm the installed version after updating against the Wordfence advisory at https://www.wordfence.com/threat-intel/vulnerabilities/id/1356ec70-4264-4687-8082-7d87a8978082?source=cve. Patch status per available data: upstream fix available (changeset/commit); a specific released patched version is not independently confirmed, so verify the change is present in the release you deploy. If immediate updating is not possible, use these specifics: (1) remove or stop rendering the Contact Email custom field from the public single-listing output (Custom Fields configuration) - effective immediately, but it hides legitimate contact information from visitors; (2) disable open subscriber registration and/or require administrator moderation with a policy of rejecting untrusted listing submissions - this breaks the submission precondition entirely, at the cost of added editorial workload and reduced user-generated content; (3) if listings must stay publicly viewable, sanitize the stored 'email' field values in the database and add a WAF/virtual-patching rule that rejects script-bearing values submitted to the listing form - cheaper than changing site policy but brittle against encoding variants and requires ongoing rule maintenance. Sites that never enabled the Contact Email field on public output, never approve untrusted listings, or do not allow low-privilege self-registration are not realistically exploitable and can prioritize accordingly.
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 business-directory and classified-listings plugin that builds listings from administrator-defined custom fields; each field is stored with an htmlvar_name and rendered by the plugin's custom-field output layer. The affected code paths are includes/custom-fields/output-functions.php (around line 1448), includes/post-functions.php (around line 1845), and includes/class-geodir-post-data.php (around line 949), all as shipped in tag 2.8.188. The root cause is CWE-79 (Improper Neutralization of Input During Web Page Generation, i.e. stored cross-site scripting): the 'email' field value is insufficiently sanitized on input and insufficiently escaped on output, so attacker-supplied markup is persisted with the listing and emitted into the public single-listing page in the site's own origin. The CPE cpe:2.3:a:paoltaia:geodirectory_-_wp_business_directory_plugin_and_classified_listings_directory:*:*:*:*:*:*:*:* matches the whole plugin across the affected release line, confirming that no version-specific carve-out applies below the fixed code. Because the injected script renders in the page context of the listing site, the CVSS scope is S:C with only C:L/I:L/A:N, meaning the realistic consequence is session/token theft, credential-harvesting overlays, or forced actions on behalf of any visitor or logged-in administrator who views the listing, rather than server compromise. The vendor-published vector scores AC:L, while the independent assessment rates AC:H to reflect the administrator-controlled preconditions above; both agree on AV:N, PR:L, UI:N, S:C, and the low CIA impact. The fix appears as changeset 3728472 in the plugin's trunk, specifically modifying the custom-field output function, and a master branch snapshot is also referenced; a specific patched release tag is not stated in the available data.
Know when Wordpress Plugin 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:L/UI:N/S:C/C:L/I:L/A:N
Authenticated subscriber submits payload (PR:L); success depends on admin configuring the field and approving the listing, conditions outside attacker control (AC:H); stored XSS executes in other users' browsers (S:C, C:L/I:L).
Primary rating from Vendor (Wordfence).
CVSS VectorVendor: Wordfence
DescriptionCVE.org
The GeoDirectory - WP Business Directory Plugin and Classified Listings Directory plugin for WordPress is vulnerable to Stored Cross-Site Scripting via the 'email (Contact Email custom field htmlvar_name)' parameter in all versions up to, and including, 2.8.188 due to insufficient input sanitization and output escaping. 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. Successful exploitation requires that an administrator has added and configured the Contact Email custom field to render on the public single-listing output page, and that the administrator subsequently approves the attacker's submitted listing.
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 Wordpress Plugin
View allThe 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 Simple File List plugin for WordPress through version 4.2.2 contains an unauthenticated remote code execution vulner
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
SQL injection in the NotificationX WordPress plugin (versions up to and including 2.8.2) allows unauthenticated remote a
The POST SMTP Mailer - Email log, Delivery Failure Notifications and Best Mail SMTP for WordPress plugin for WordPress i
The MasterStudy LMS WordPress Plugin - for Online Courses and Education plugin for WordPress is vulnerable to union base
The Email Subscribers by Icegram Express plugin for WordPress is vulnerable to SQL Injection via the ‘hash’ parameter in
Remote code execution in the WP Query Console WordPress plugin (versions up to and including 1.0) by Ajit Bohra allows u
EUVD-2026-96054
GHSA-9jf5-3h6f-ph4m
NVD
CVE.org
EPSS
Vulnrichment
VulDB
Exploit-DB