CVE-2026-9148: WordPress wpDiscuz Stored XSS – Unauth Guest Comment Injection
The Comments – wpDiscuz plugin for WordPress contains a stored cross-site scripting (XSS) vulnerability affecting versions up to 7.6.56. Attackers can inject malicious scripts through the guest commenter 'Website' field, which are then stored and executed whenever anyone views the affected page. Because no authentication is required and the attack happens at the network level, this poses a significant risk to any WordPress site running the vulnerable plugin.
Source data · NVD / CISA · public domain
- CVSS
- 3.1 · 7.2 HIGH · CVSS:3.1/AV:N/AC:L/PR:N/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 Comments – wpDiscuz plugin for WordPress is vulnerable to Stored Cross-Site Scripting via the guest commenter 'Website' field in versions up to, and including, 7.6.56 This is due to insufficient output escaping in the getCommentAuthor() function, which interpolates the stored comment_author_url value directly into single-quoted HTML attributes without applying esc_url() or esc_attr(). This makes it possible for unauthenticated attackers to inject arbitrary web scripts in pages that will execute whenever a user accesses an injected page.
11 reference(s) · View on NVD →
SEC.co analysis · AI-assisted, reviewed against source
Technical summary
The vulnerability stems from improper output escaping in the getCommentAuthor() function. When a guest submitter provides a URL in the 'Website' field during comment submission, that value is stored in the comment_author_url database field. Upon rendering, the plugin interpolates this stored value directly into single-quoted HTML attributes without applying WordPress escaping functions like esc_url() or esc_attr(). This allows attackers to break out of the attribute context and inject arbitrary HTML and JavaScript. The payload executes in the security context of the page, affecting all users who view the comment.
Business impact
A successful exploit can lead to widespread user compromise across your WordPress site. Attackers can steal session cookies, deface content, redirect visitors to malicious sites, or deploy malware. Because the attack is stored, it persists until remediated—every page load by every user risks exposure. For sites with significant traffic or user bases, this represents both a direct security incident and potential regulatory/compliance exposure if user data is exfiltrated.
Affected systems
WordPress installations running the Comments – wpDiscuz plugin in versions up to and including 7.6.56 are affected. The vulnerability applies to all environments—shared hosting, dedicated servers, or managed WordPress platforms—as long as the vulnerable plugin version is active. Any WordPress site accepting guest comments through wpDiscuz is at risk.
Exploitability
This vulnerability is highly exploitable. It requires no authentication, no special user interaction beyond normal comment submission, and works across all network conditions (CVSS vector AV:N/AC:L/PR:N). An attacker simply needs to submit a comment with a crafted URL payload. The barrier to exploitation is minimal, and the attack is reliable. This is not a theoretical risk; stored XSS in widely used plugins is actively exploited in the wild.
Remediation
Update the Comments – wpDiscuz plugin to a patched version that properly escapes output in the getCommentAuthor() function. Verify against the plugin's official release notes or the vendor advisory for the specific minimum version that addresses CVE-2026-9148. After patching, consider reviewing existing comments in your database for suspicious payloads and consider purging or sanitizing high-risk entries if your site was exposed for an extended period.
Patch guidance
Check the official wpDiscuz plugin repository or vendor advisory for version 7.6.57 or later, which should address this vulnerability. Verify the specific patched version against the official source before deployment. Apply the patch in a staging environment first to confirm compatibility with your theme and other plugins. After deployment to production, clear any caching layers (page cache, CDN cache) to ensure the patched rendering logic is immediately active.
Detection guidance
Search your WordPress database for suspicious patterns in the comment_author_url field, such as JavaScript event handlers (onerror, onclick, onload) or protocol handlers (javascript:, data:). Review server and WAF logs for POST requests to comment submission endpoints with payloads containing script tags or event attributes. Monitor for user reports of unexpected redirects or pop-ups when viewing comments. Web Application Firewalls (WAF) with XSS detection rules can help catch some of these payloads at ingress, though stored XSS bypasses may have already occurred before mitigation.
Why prioritize this
This vulnerability merits immediate attention due to its HIGH CVSS score (7.2), the ease of exploitation (no authentication, low complexity), and the wide install base of the wpDiscuz plugin across WordPress sites. The stored nature of the attack means compromise persists and affects all site visitors repeatedly. Unlike reflected XSS, patching alone does not instantly eliminate risk—you must also address any already-injected content. Given the straightforward attack vector and high user impact, this should be among the first items addressed in your patch queue.
Risk score, explained
The CVSS 3.1 score of 7.2 (HIGH) reflects the combination of a network-accessible, unauthenticated attack (AV:N, PR:N) requiring minimal user interaction (AC:L, UI:N) with changed scope (S:C), resulting in low confidentiality and integrity impact. The score does not account for the global, persistent nature of stored XSS or the large attack surface (millions of WordPress sites), both of which elevate real-world risk beyond the numerical score.
Frequently asked questions
Do I need to have user accounts compromised for this attack to work?
No. The attack works entirely through the comment submission form available to unauthenticated guests. An attacker does not need a WordPress account or any special privileges; they only need the ability to submit a comment.
If I disable guest comments, am I protected?
Disabling guest comments would prevent new malicious submissions, but it does not address payloads already stored in your database from previous attacks. You should still update the plugin and audit existing comments.
Will a WAF or security plugin catch this attack?
A WAF with strong XSS rules may block some payloads at submission time, but bypass techniques exist. A WordPress security plugin may help detect and clean stored payloads, but the definitive fix is patching the plugin's escaping logic. Defense in depth—combining both—is recommended.
What should I do if I suspect my site was compromised?
Update the plugin immediately, then audit your comments table for suspicious URLs or JavaScript patterns. Consider a full site malware scan using reputable tools. If user data was exfiltrated, follow your incident response plan and notify affected parties as required by law. Review access logs for signs of attacker reconnaissance or lateral movement.
This analysis is provided for informational purposes and does not constitute professional security advice or a complete risk assessment. Organizations must validate all findings against their own environment, vendor advisories, and security policies. The CVSS score, affected versions, and patch information are current as of the publication date but may change. Always verify patch versions and compatibility in a staging environment before production deployment. SEC.co makes no warranty regarding the completeness or accuracy of this intelligence and assumes no liability for damages arising from its use or misuse. Source: NVD (public-domain), retrieved 2026-08-11. Analysis generated by SEC.co (claude-haiku-4-5).
Weaknesses (CWE)
Related vulnerabilities
- CVE-2016-20066HIGHWordPress CP Polls 1.0.8 Persistent XSS Vulnerability
- CVE-2016-20084HIGHWordPress Appointment-Booking-Calendar Unauthenticated XSS and Privilege Escalation
- CVE-2023-33999HIGHDOM-Based XSS in WP Mail Log Plugin – Analysis & Remediation
- CVE-2023-45795HIGHXSS in Pilz PASvisu Builder Component – Patch Guidance
- CVE-2023-45796HIGHStored XSS in Pilz PASvisu & PMI Industrial Software – Remediation Guide
- CVE-2023-54351HIGHStored XSS in WordPress Sonaar Music Plugin 4.7 – Patch & Detection Guide
- CVE-2025-11262HIGHLink Whisper Free Stored XSS Vulnerability – Analysis & Patch Guidance
- CVE-2025-14773HIGHABB T-MAC Plus XSS Vulnerability – HIGH Risk Assessment