Description
The GeoDirectory – WP Business Directory Plugin and Classified Listings Directory plugin for WordPress is vulnerable to Stored Cross-Site Scripting via the 'post_content' parameter in all versions up to, and including, 2.8.191 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. This requires the attacker to own a published listing, as the ownership check in GeoDir_Post_Data::can_edit() limits who can store the payload; however, because ajax_save_post() re-applies the existing post_status, edits to an already-published listing bypass re-moderation and remain live immediately.
Published: 2026-10-16
Score: 6.4 Medium
EPSS: < 1% Very Low
KEV: No
Impact: Stored Cross‑Site Scripting that permits malicious script injection via post content in authenticated listings
Action: Patch
AI Analysis

Impact

GeoDirectory, a WordPress plugin for business and classified listings, contains a stored cross‑site scripting flaw. The bug stems from inadequate sanitization of the 'post_content' field and a lack of output escaping. An attacker who is authenticated with subscriber privileges or higher and who owns a published listing can inject malicious JavaScript that is saved and rendered whenever other users view the listing. This permits session theft, defacement, or malicious redirects, affecting the confidentiality, integrity, and availability of the site.

Affected Systems

The vulnerability exists in all plugin releases up to and including version 2.8.191. Users running the GeoDirectory – WP Business Directory Plugin or Classified Listings Directory plugin from the vendor paoltaia should verify that they are not using these affected versions. Updating to any release newer than 2.8.191 eliminates the flaw.

Risk and Exploitability

The CVSS score of 6.4 indicates moderate severity. No EPSS data is provided, and the flaw is not listed in the CISA KEV catalog. The attack requires the victim to be a logged‑in subscriber or higher, and the payload must be embedded in a listing the attacker owns. Because the plugin’s ajax_save_post function restores the post_status, edits are applied immediately and do not trigger moderation, giving the attacker instant persistence. Given these conditions, the likelihood of exploitation in a typical deployment is lower than high‑profile remote code execution bugs, but it remains a concern for sites granting subscriber access to listing edits.

Generated by OpenCVE AI on October 16, 2026 at 11:55 UTC.

Remediation

No solution or workaround provided in the CVE record.

OpenCVE Recommended Actions

  • Upgrade GeoDirectory plugin to version 2.8.192 or later to apply the vendor patch that properly sanitizes 'post_content'.
  • If an upgrade is not possible, limit subscription roles that can edit listings or disable the ability to modify 'post_content' for existing listings to prevent new malicious content from being saved.
  • Enable WordPress security plugins that filter or escape user input, and monitor site logs for repeated attempts to inject script payloads into listing content.

Generated by OpenCVE AI on October 16, 2026 at 11:55 UTC.

Tracking

Sign in to view the affected projects.

Advisories

No advisories yet.

History

Fri, 16 Oct 2026 09:45:00 +0000

Type Values Removed Values Added
Description The GeoDirectory – WP Business Directory Plugin and Classified Listings Directory plugin for WordPress is vulnerable to Stored Cross-Site Scripting via the 'post_content' parameter in all versions up to, and including, 2.8.191 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. This requires the attacker to own a published listing, as the ownership check in GeoDir_Post_Data::can_edit() limits who can store the payload; however, because ajax_save_post() re-applies the existing post_status, edits to an already-published listing bypass re-moderation and remain live immediately.
Title GeoDirectory <= 2.8.191 - Authenticated (Subscriber+) Stored Cross-Site Scripting via 'post_content' Parameter via data-embed-url Attribute
Weaknesses CWE-79
References
Metrics cvssV3_1

{'score': 6.4, 'vector': 'CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:C/C:L/I:L/A:N'}


Subscriptions

No data.

cve-icon MITRE

Status: PUBLISHED

Assigner: Wordfence

Published:

Updated: 2026-10-16T09:26:37.351Z

Reserved: 2026-10-14T14:23:08.631Z

Link: CVE-2026-110703

cve-icon Vulnrichment

No data.

cve-icon NVD

Status : Received

Published: 2026-10-16T10:18:05.447

Modified: 2026-10-16T10:18:05.447

Link: CVE-2026-110703

cve-icon Redhat

No data.

cve-icon OpenCVE Enrichment

Updated: 2026-10-16T13:22:53Z

Weaknesses
  • CWE-79

    Improper Neutralization of Input During Web Page Generation ('Cross-site Scripting')