CVE-2026-8039: Stored XSS in Fancy Testimonials WordPress Plugin
The Fancy Testimonials plugin for WordPress contains a stored cross-site scripting (XSS) vulnerability in how it handles the 'author' attribute of the testimonial shortcode. An authenticated user with Contributor-level permissions or higher can insert malicious JavaScript into a page through this attribute. That script then executes in the browsers of anyone who visits the affected page. Because the malicious code is permanently stored in the page content, every visitor becomes a potential victim—making this a stored XSS rather than a one-time reflected attack.
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-06-18 / 2026-06-18
NVD description (verbatim)
The Fancy Testimonials plugin for WordPress is vulnerable to Stored Cross-Site Scripting via the 'author' shortcode attribute in the 'testimonial' shortcode in all versions up to, and including, 1.0 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.
3 reference(s) · View on NVD →
SEC.co analysis · AI-assisted, reviewed against source
Technical summary
CVE-2026-8039 is a Stored XSS vulnerability (CWE-79) in the Fancy Testimonials WordPress plugin affecting all versions up to and including 1.0. The vulnerability exists in the 'testimonial' shortcode's 'author' parameter, where user-supplied input is not properly sanitized before being stored in the database and not properly escaped before being rendered in the page HTML. The CVSS 3.1 score of 6.4 (MEDIUM) reflects a network-based attack vector with low complexity and no user interaction required for exploitation, though the attack is limited to authenticated users with Contributor privileges or above. The scope is changed, meaning the vulnerability can affect resources beyond the vulnerable component itself.
Business impact
This vulnerability allows authenticated insiders (content contributors, editors, or administrators) to compromise the integrity of your WordPress site by injecting persistent malicious scripts. An attacker exploiting this flaw could steal visitor session tokens, redirect users to phishing sites, inject malware, or harvest sensitive data from page visitors. Unlike reflected XSS, the stored nature means the attack remains live until manually removed, affecting all subsequent visitors. This threatens your site's reputation, visitor trust, and compliance posture—particularly if your site handles sensitive user data or serves a compliance-regulated industry.
Affected systems
The Fancy Testimonials WordPress plugin in all versions up to and including 1.0 is affected. Any WordPress installation running this plugin is vulnerable if users with Contributor-level access or higher exist on the site. The risk is highest on multi-author sites or those with delegated content management responsibilities.
Exploitability
Exploitation requires valid WordPress authentication with at least Contributor-level privileges. An attacker already authenticated to the site can directly inject malicious JavaScript through the shortcode's 'author' parameter without additional user interaction. No special technical skills or zero-day techniques are required—basic knowledge of WordPress shortcodes and HTML/JavaScript is sufficient. The attack complexity is low and the exploitation is straightforward, though the vulnerability is not currently listed in the Known Exploited Vulnerabilities (KEV) catalog.
Remediation
Update the Fancy Testimonials plugin to a patched version as soon as one is available from the plugin developer. Verify the specific patch version number against the official plugin repository or vendor advisory. Until a patch is available, restrict Contributor-level access to users you fully trust, use role-based access control to minimize the number of users who can create or edit testimonials, and conduct a careful audit of existing testimonial content for any suspicious 'author' attribute values that may indicate prior exploitation.
Patch guidance
Monitor the official Fancy Testimonials plugin repository and the plugin developer's security announcements for a patched release. When a patch is available, test it in a staging environment before deploying to production. After patching, verify that the plugin's post-update sanitization and escaping functions are correctly applied to the 'author' shortcode attribute. Verify against the vendor advisory for specific version numbers and compatibility considerations.
Detection guidance
Search your WordPress database for instances of the 'testimonial' shortcode with suspicious or encoded content in the 'author' parameter, particularly values containing script tags, event handlers (onclick, onerror, etc.), or Base64-encoded payloads. Review your WordPress logs for unusual content creation or modification by Contributor-level accounts, especially around the time frame when the plugin was installed or updated. Monitor your web application firewall (WAF) for POST requests containing JavaScript-like content targeting the plugin's shortcode handling endpoints. Inspect the HTML source of published pages containing testimonials to identify any unexpected script injections rendered in the page.
Why prioritize this
Although the CVSS score is MEDIUM (6.4), this vulnerability warrants prompt attention due to its stored nature—the attack persists until actively remediated—and its accessibility to any authenticated user with basic privileges. On multi-author WordPress sites or those with delegated content workflows, the risk of exploitation is elevated. The vulnerability directly impacts site integrity and visitor security. However, it is not yet a known actively exploited vulnerability, providing a window to remediate before attackers weaponize it at scale.
Risk score, explained
The CVSS 3.1 score of 6.4 reflects: (1) Network-based attack vector (AV:N) — the vulnerability is exploitable over the network without special access; (2) Low attack complexity (AC:L) — no special conditions or tools are required; (3) Low privileges (PR:L) — exploitation requires prior authentication as a Contributor or higher; (4) No user interaction (UI:N) — the malicious code executes automatically when pages are viewed; (5) Changed scope (S:C) — the vulnerability can affect resources outside the vulnerable component (any site visitor); and (6) Low confidentiality and integrity impact (C:L, I:L) — the attacker can steal limited data or inject limited malicious content, with no availability impact (A:N). The privilege requirement and lack of remote code execution capability prevent a higher score, despite the persistent nature of the attack.
Frequently asked questions
Who is at risk if my WordPress site runs this plugin?
Any WordPress site using Fancy Testimonials up to version 1.0 is vulnerable if at least one user with Contributor-level access (or Editor, Administrator) exists. On small sites with only the owner, the risk is lower. On larger sites with multiple authors or delegated content management, the attack surface is larger. However, all sites are vulnerable regardless of size if the plugin is installed.
How can I tell if this plugin has been exploited on my site?
Audit all published testimonials and pages containing the testimonial shortcode for suspicious content in the 'author' field, such as HTML tags, JavaScript, or obfuscated strings. Check your WordPress revision history and audit logs for unusual or unauthorized edits to testimonial content. Export your database and search for shortcode instances with suspicious attributes. If you lack detailed audit logging, consider conducting a manual code review of your post_content table specifically for anomalies in shortcode attributes.
Can I safely use this plugin if I limit access to Administrators only?
While restricting Contributor access significantly reduces risk, this does not eliminate the vulnerability itself. A compromised administrator account or a malicious insider with admin privileges could still exploit it. The plugin remains vulnerable until patched. It is best to patch rather than rely on access control alone, as access controls can be circumvented or misconfigured.
Is there a WAF rule or filter I can deploy while waiting for a patch?
Yes. You can add a WAF rule to block POST requests containing script-like patterns (e.g., <script, onerror=, onclick=, javascript:) in parameters destined for the testimonial shortcode endpoint. However, this is a temporary mitigation and may block legitimate content. A properly configured input validation rule specific to the plugin's shortcode parameters would be more precise. Ultimately, patching is the permanent solution.
This analysis is provided for informational and defensive security purposes only. The information herein is current as of the publication date and subject to change as new patches and threat intelligence emerge. Organizations should verify all version numbers, patch availability, and compatibility information against official vendor advisories and security bulletins before taking action. Testing patches in a staging environment is strongly recommended before production deployment. This explainer does not constitute legal, compliance, or procurement advice. Consult your security team and vendor support for guidance specific to your environment. Source: NVD (public-domain), retrieved 2026-07-28. 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