Severity by source
AV:N/AC:L/PR:L/UI:N/S:C/C:L/I:L/A:N
Contributor account required (PR:L); stored payload auto-executes on page load (UI:N); scope changes to victim browsers enabling session theft (S:C); no availability impact.
Primary rating from Vendor (Wordfence).
CVSS VectorVendor: Wordfence
Lifecycle Timeline
2DescriptionCVE.org
The CM Business Directory - Optimise and showcase local business plugin for WordPress is vulnerable to Stored Cross-Site Scripting via Business Address Meta Fields in all versions up to, and including, 1.5.7 due to insufficient input sanitization and output escaping. This makes it possible for authenticated attackers, with contributor-level access and above, to inject arbitrary web scripts in pages that will execute whenever a user accesses an injected page. Because the malicious payload is stored in post meta rather than post_content, WordPress's unfiltered_html capability restriction does not apply, meaning contributors who lack that capability can still inject executable HTML via the address meta fields such as cmbd_address, cmbd_cityTown, cmbd_stateCounty, cmbd_postalcode, cmbd_region, and cmbd_country.
AnalysisAI
Stored cross-site scripting in the CM Business Directory WordPress plugin (all versions ≤ 1.5.7) allows contributor-level authenticated users to persist arbitrary JavaScript in business listing address meta fields, executing against any visitor who loads the affected page. The vulnerability exploits a structural gap in WordPress's permission model: because the payload is written to post meta rather than post_content, the platform's native unfiltered_html capability check never fires, giving low-privilege contributors an injection vector that WordPress's architecture was designed to prevent. No public exploit code has been identified and the vulnerability is not listed in CISA KEV, though Wordfence has published full technical details including exact vulnerable code line references and an upstream fix commit.
Technical ContextAI
The affected component is the CM Business Directory - Optimise and Showcase Local Business plugin by Creative Minds Solutions (CPE: cpe:2.3:a:creativemindssolutions:cm_business_directory_-_optimise_and_showcase_local_business:*:*:*:*:*:*:*:*). Root cause is CWE-79: the plugin writes user-supplied address values directly into rendered HTML without sanitization on input or escaping on output. Vulnerable rendering occurs in the frontend shortcode handler at cm-business-directory-business-page-sc.php (lines 107, 151, and 190) and the backend handler at cm-business-directory-backend.php (lines 366 and 385). The specific meta keys exposed are cmbd_address, cmbd_cityTown, cmbd_stateCounty, cmbd_postalcode, cmbd_region, and cmbd_country. WordPress's unfiltered_html capability is designed to prevent contributors from injecting raw HTML into posts, but this restriction is enforced only on post_content; post meta fields are not subject to the same sanitization pipeline, making any plugin that stores and renders unsanitized user input via post meta a bypass vector.
RemediationAI
An upstream fix has been committed to the plugin repository via WordPress Plugin Trac changeset 3590314 (https://plugins.trac.wordpress.org/changeset?sfp_email=&sfph_mail=&reponame=&old=3590314%40cm-business-directory&new=3590314%40cm-business-directory); however, the exact patched release version number is not confirmed in the available data - verify that a version above 1.5.7 is available in the WordPress plugin directory before upgrading, and update to the latest available release. If an updated plugin release is not yet available or cannot be deployed immediately, the most effective compensating control is restricting who holds contributor-level access: disable open contributor registration, require manual account approval, and audit existing contributor accounts for untrusted users. Administrators should also audit existing business listing entries for script tags or event handlers in address fields (cmbd_address, cmbd_cityTown, cmbd_stateCounty, cmbd_postalcode, cmbd_region, cmbd_country) and remove any injected payloads. Wordfence firewall users should verify applicable firewall rules are active for this CVE.
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
Same weakness CWE-79 – Cross-site Scripting (XSS)
View allShare
External POC / Exploit Code
Leaving vuln.today
EUVD-2026-41491
GHSA-fq8v-w9f5-mxc7