| Plugin Name | Productive Style |
|---|---|
| Type of Vulnerability | Authenticated Stored XSS |
| CVE Number | CVE-2025-8394 |
| Urgency | Low |
| CVE Publish Date | 2025-09-16 |
| Source URL | CVE-2025-8394 |
Authenticated Contributor Stored XSS in Productive Style (<= 1.1.23): What WordPress Site Owners and Developers Must Do Now
As a Hong Kong security expert I publish concise, actionable guidance for WordPress site owners and developers. A stored Cross‑Site Scripting (XSS) vulnerability in the Productive Style plugin — tracked as CVE‑2025‑8394 — permits authenticated users with Contributor (or higher) privileges to persist JavaScript via the display_productive_breadcrumb shortcode. The issue is fixed in version 1.1.25. Site operators that use this plugin should treat this as important: Contributor accounts are common in editorial workflows and multi-author blogs, creating a realistic attack surface.
Executive summary
- Vulnerability: Stored XSS in Productive Style plugin (shortcode:
display_productive_breadcrumb). - Affected versions: ≤ 1.1.23.
- Fixed in: 1.1.25.
- Required privileges: Contributor and above (authenticated).
- CVE: CVE‑2025‑8394; CVSS reported 6.5 (medium‑low).
- Impact: Persistent XSS allows arbitrary script execution in visitors’ browsers — possible account takeover, session theft, content tampering, SEO spam, or user redirects.
- Immediate action: Update the plugin to 1.1.25+ as soon as possible. If update is not immediately possible, disable the shortcode, restrict contributor inputs, sanitize stored content, or apply virtual patching with a WAF.
What happened — plain English
The Productive Style plugin exposes a shortcode named display_productive_breadcrumb that renders breadcrumb text. The plugin accepted certain user-supplied content (originating from Contributor-level accounts or higher) and later rendered it without sufficient escaping or sanitization. Because the payload is stored, any visitor who loads a page containing the vulnerable breadcrumb may execute the injected script under the site origin.
Stored XSS is more dangerous than reflected XSS because malicious input is persisted and can affect multiple visitors or site administrators repeatedly.
Exploitation scenario
- A malicious Contributor (or an account taken over via weak credentials/social engineering) injects a crafted payload into a field used by the breadcrumb (post title, excerpt, meta, taxonomy term, profile field, etc.).
- The plugin stores the payload and later renders it when the
display_productive_breadcrumbshortcode appears on a page. - The injected script executes in the context of the site, allowing cookie/session access (if cookies are not HttpOnly), DOM manipulation, requests to internal endpoints, or stealthy redirects.
Contributor workflows that allow HTML input into labels, excerpts, or meta fields are particularly risky.
Impact and risk assessment
- Confidentiality: Moderate — scripts can capture tokens, session cookies (if not HttpOnly), or exfiltrate data via crafted requests.
- Integrity: Moderate — injected scripts can alter page content or perform actions in the user context.
- Availability: Low — XSS seldom causes direct downtime but can be used for disruptive payloads.
- Reputation & SEO: High — attackers often insert spam or phishing content, risking search penalties and user trust.
The CVSS 6.5 rating reflects medium severity — substantial for multi-author or high-traffic sites.
How to tell if you’re affected
- Confirm Productive Style is installed and active: Dashboard → Plugins → look for Productive Style.
- Check plugin version: versions ≤ 1.1.23 are affected; update to 1.1.25+.
- If you cannot update immediately, scan content for scripts and suspicious inline attributes that could indicate stored payloads.
Useful search strategies: