CVE-2026-8892: CM Business Directory Plugin WordPress Stored XSS Vulnerability
The CM Business Directory plugin for WordPress contains a stored cross-site scripting (XSS) vulnerability that allows authenticated contributors to inject malicious code into business address fields. Unlike typical WordPress vulnerabilities, this flaw bypasses the standard HTML filtering mechanism because the malicious payload is stored in metadata rather than post content. Once injected, the script executes whenever anyone views pages displaying that business directory data, potentially affecting site visitors and administrators.
Source data · NVD / CISA · public domain
- CVSS
- 3.1 · 6.4 MEDIUM · CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:C/C:L/I:L/A:N
- Weaknesses (CWE)
- CWE-79
- Affected products
- 0 configuration(s)
- Published / Modified
- 2026-07-03 / 2026-07-06
NVD description (verbatim)
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.
7 reference(s) · View on NVD →
SEC.co analysis · AI-assisted, reviewed against source
Technical summary
CVE-2026-8892 is a stored XSS vulnerability (CWE-79) in the CM Business Directory plugin versions up to 1.5.7. The vulnerability exists in business address meta fields (cmbd_address, cmbd_cityTown, cmbd_stateCounty, cmbd_postalcode, cmbd_region, cmbd_country) that lack sufficient input sanitization and output escaping. Because the malicious payload resides in post meta rather than post_content, it circumvents WordPress's unfiltered_html capability restriction. This allows contributors—who typically cannot inject HTML in post content—to execute arbitrary JavaScript in the context of any user viewing affected pages.
Business impact
An attacker with contributor-level access can persistently inject malicious scripts that execute for all site visitors. This enables credential theft, session hijacking, malware distribution, or redirection to phishing pages without requiring administrative credentials. For business directory sites, this could damage customer trust, trigger search engine warnings, or expose customer contact information captured through injected forms. The vulnerability also creates insider threat risk if contributor accounts are compromised or misused.
Affected systems
WordPress installations running the CM Business Directory plugin in version 1.5.7 and earlier are affected. Any WordPress site using this plugin to display local business information is at risk if it has contributor-level users or if contributor accounts could be compromised.
Exploitability
The vulnerability requires authentication (contributor-level access or above) and does not require user interaction beyond normal site browsing. Exploitation is straightforward: an attacker simply fills in a business address field with JavaScript code. The CVSS score of 6.4 (Medium) reflects the authentication requirement but acknowledges the cross-site scope and dual impact on confidentiality and integrity. Active exploitation is not yet documented in public databases.
Remediation
Update the CM Business Directory plugin to a patched version released after version 1.5.7. Verify the exact patched version number in the official plugin repository or vendor advisory. As an interim measure, restrict contributor-level access to only trusted users and consider disabling the plugin entirely until a patch is available if business directory functionality is not critical.
Patch guidance
Check the CM Business Directory plugin page in the WordPress plugin repository for the latest available version. Update through the WordPress admin dashboard (Plugins > Updates) or manually download the patched version and reupload. After updating, verify that existing business directory entries have not been compromised by reviewing address meta fields for unusual content. Test the plugin functionality across multiple user roles to ensure the patch does not break legitimate features.
Detection guidance
Search WordPress post meta for suspicious JavaScript patterns in the vulnerable meta keys (cmbd_address, cmbd_cityTown, cmbd_stateCounty, cmbd_postalcode, cmbd_region, cmbd_country). Monitor contributor account activity, particularly changes to business directory entries. Check site traffic logs and user behavior analytics for signs of malicious redirects or unexpected data exfiltration. Review page load times and network requests for injected external scripts. Audit contributor and author role assignments to identify unauthorized or suspicious accounts.
Why prioritize this
Although the CVSS score is Medium, prioritize based on your site's reliance on contributor access and the sensitivity of visitor data. Sites with multiple contributors, public business directory functions, or strict compliance requirements should patch immediately. The ability to bypass WordPress's standard HTML restrictions makes this more dangerous than typical contributor-level vulnerabilities. The stored nature of the XSS means the payload persists and affects all visitors until removed.
Risk score, explained
The CVSS 3.1 score of 6.4 (Medium) is driven by the requirement for authentication (PR:L) and lack of user interaction (UI:N), but elevated by the changed scope (S:C) affecting other users' browsers and dual impact on confidentiality and integrity (C:L, I:L). The score does not fully capture the practical risk of circumventing WordPress's built-in HTML restriction capability, which security-conscious administrators rely on.
Frequently asked questions
Does this affect WordPress sites without contributors?
No. The vulnerability requires at least contributor-level access to exploit. If your site has no contributors or only fully trusted contributors, your immediate risk is lower—but you should still patch to eliminate the possibility of account compromise leading to exploitation.
Can site visitors trigger this vulnerability?
No. Site visitors cannot exploit this vulnerability on their own. Only users with contributor-level access (Contributor, Author, Editor, or Administrator) can inject the malicious code. However, once injected, all visitors are affected by the stored XSS payload.
Is there a difference between this and typical WordPress post content XSS?
Yes. This vulnerability bypasses WordPress's unfiltered_html capability by storing the payload in post meta instead of post content. This means contributors who lack unfiltered_html permission (the typical security control) can still inject executable HTML. This makes it a more subtle privilege escalation vector.
What should I do if I suspect this vulnerability has been exploited on my site?
Review business directory entries and address meta fields for suspicious code or unusual characters. Check your site's analytics for unexpected traffic spikes or redirects. Consider restoring from a clean backup if you find evidence of injection. Audit contributor account access and consider forcing password resets for all contributor-and-above accounts, then patch the plugin immediately.
This analysis is provided for informational and defensive security purposes. Verify all patch information against official vendor advisories before deployment. Do not use this information to develop or distribute exploits. Security decisions should account for your specific environment, risk tolerance, and regulatory requirements. Always test patches in non-production environments before broad deployment. Source: NVD (public-domain), retrieved 2026-08-11. Analysis generated by SEC.co (claude-haiku-4-5).
Weaknesses (CWE)
Related vulnerabilities
- CVE-2016-20070MEDIUMPrivilege Escalation & Stored XSS in WordPress Booking Calendar Contact Form 1.0.23
- CVE-2018-25384MEDIUMStored XSS in Wikidforum 2.20 Allows Authenticated Attackers to Inject Malicious Scripts
- CVE-2019-25731MEDIUMStored XSS in Zuz Music 2.1 Contact Form
- CVE-2019-25737MEDIUMStored XSS in Live Chat Unlimited 2.8.3 – Admin Session Compromise
- CVE-2019-25739MEDIUMGigToDo 1.3 Stored XSS Vulnerability in Proposal Descriptions
- CVE-2019-25742MEDIUMStored XSS in Zoner Real Estate WordPress Theme 4.1.1 – Admin Account Compromise Risk
- CVE-2019-25743MEDIUMWordPress Soliloquy Lite 2.5.6 Stored XSS Vulnerability
- CVE-2019-25744MEDIUMWordPress Popup Builder 3.49 Stored XSS Vulnerability – Exploit Prevention & Patch Guide