Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessObtain contributor-level account
-
DeliverySubmit post with malicious styling value
-
ExploitPayload stored unsanitized in style block
-
ExecutionAdmin/visitor views affected post
-
PersistScript executes in victim browser
-
ImpactSession hijack or admin actions
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A05:2025 - Injection
ASVS 5.0
V1 - Encoding and Sanitization Output encoding, context-aware escaping
MITRE ATT&CK
2 techniques across 2 tactics: Initial Access, Execution The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up. |
| Exploitation Conditions | Requires an authenticated WordPress account with contributor-level capabilities or above on a site running the Text Styler plugin through version 1.1.1; the attacker stores JavaScript in a Text Styler styling value that the plugin outputs unescaped inside a front-end style block, and no edit-post capability check blocks it. Exploitation is LIMITED by: needing a valid contributor+ account (authenticated), requiring a victim to view the affected post for the payload to fire (UI:R), and being confined to sites that have this specific niche plugin installed. It does not work against unauthenticated visitors as an attacker and is not exploitable against default installs lacking the plugin. |
| Impact | This is a moderate-risk stored XSS (CWE-79) that requires authentication. The vendor/WPScan CVSS is 6.8 (CVSS:3.1/AV:N/AC:L/PR:H/UI:R/S:U/C:H/I:H/A:H), but several metrics look mis-set for a stored-XSS-in-plugin: the description says exploitation needs only 'contributor-level access or above,' which is a low-privilege authenticated role, so PR:H overstates the bar - PR:L is more accurate. Likewise the payload executes in a viewing user's browser (a different security scope than the vulnerable component), so S:U is arguably wrong and S:C is more defensible, and C:H/I:H/A:H is inflated for reflected-in-DOM script execution (C:L/I:L/A:N is typical for XSS). A public exploit exists (WPScan), so this is 'publicly available exploit code exists' - but note POC availability is NOT the same as active exploitation: there is no EPSS score, no CISA KEV listing, and no SSVC data provided, so there is no evidence of automated or in-the-wild exploitation. Net: a real but bounded issue - it demands an authenticated contributor account and a victim viewing the post - making it a targeted/insider or account-compromise vector rather than a mass-exploitable internet-facing flaw. Data conflict to verify with vendor: the CVSS impact and privilege metrics (PR:H, S:U, C/I/A:H) are inconsistent with a contributor-triggerable stored XSS as described. |
| Exploit ScenarioDerived | An attacker who holds (or phishes/registers into) a contributor-level WordPress account submits a post whose Text Styler styling values contain a JavaScript payload; because the plugin neither sanitizes the value nor checks edit-post capability, the script is stored and served inside a front-end style block. When an administrator or other visitor views the post, the script runs in their browser session, enabling session/cookie theft or admin-context actions. A public exploit is available via WPScan, lowering the effort to reproduce. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Sep 22, 2026
Stored cross-site scripting in the Text Styler WordPress plugin (all versions through 1.1.1) allows an authenticated user with contributor-level capabilities or above to save JavaScript inside a styling value that the plugin renders unescaped in a front-end style block, so the payload executes in the browser of anyone who views the affected post - including administrators. A secondary defect compounds the issue: the plugin does not verify that the user is permitted to edit the target post, so a low-privileged contributor can plant the payload on content they do not own. Exploitation requires only a valid contributor+ account and a victim viewing the crafted post (UI:R) on a site with this niche plugin installed; publicly available exploit code exists, and no public exploit is confirmed as actively exploited and the flaw is not listed in CISA KEV. Our independent assessment rates this moderate risk at CVSS:3.1/AV:N/AC:L/PR:L/UI:R/S:C/C:L/I:L/A:N.
RemediationAI
No vendor-released patch was identified at time of analysis, so the primary action is to deactivate and remove the Text Styler plugin until a fixed version is published (monitor the WPScan advisory https://wpscan.com/vulnerability/6175fc16-960b-4dbe-bda2-21b4ce7de54b/ and the NVD entry https://nvd.nist.gov/vuln/detail/CVE-2026-88788 for an update), accepting that deactivation will strip previously configured styling from posts. If the plugin must remain temporarily, treat the styling-value input as untrusted: restrict the ability to author posts to trusted roles (remove or tightly limit contributor accounts, since contributor+ is sufficient to plant the payload), and apply a WAF or kses-style filtering rule that rejects markup such as <script, onerror=, or javascript: in POST bodies to styling endpoints - with the trade-off of potential false positives on legitimate CSS/markup and no protection for users whose browsers bypass the WAF. Administrators should also review existing posts for unexpected inline style content and rotate admin sessions if a crafted post may have been viewed, since the stored payload executes in the viewer's browser context.
Affected VersionsENISA
Affected Packages
Source: OSV (Open Source Vulnerabilities)
Affects your stack
Affects 1 package in euvd
Checking this CVE against your own stacks and servers is part of the Basic plan and up.
Technical ContextAI · show details
CVE-2026-88788 is a CWE-79 improper neutralization of input during web page generation (stored/persistent XSS) affecting the Text Styler WordPress plugin through version 1.1.1. The root cause is twofold: user-supplied styling values are stored without sanitization or escaping and are later emitted verbatim inside a front-end style block, meaning attacker-controlled input is interpreted as CSS/HTML context rather than inert data; and the plugin lacks a capability check confirming the acting user may edit the target post, so contributor-level accounts can write attacker-controlled styling into content they should not control. Because WordPress renders the style block to every visitor of that post, the injected JavaScript runs in each viewer's browser session, giving a scope change (S:C) where a low-privileged stored payload can reach an administrator's session. CPE data lists the affected package as cpe:2.3:a:unknown:text_styler:*:*:*:*:*:*:*:* (vendor not yet assigned in the CPE dictionary), and ENISA EUVD records the affected range as Text Styler 0 through 1.1.1. Rated impact in our assessment is low confidentiality and low integrity with no availability impact, reflecting session/token theft and content tampering rather than pre-auth compromise.
Know when Text Styler gets its next vulnerability
- Watch products and get an email when something new is published
- Check this CVE against your own stack and servers
- Exploit and PoC references, threat intelligence from 22 sources
No credit card · 7-day full trial
Severity by source
AV:N/AC:L/PR:H/UI:R/S:U/C:H/I:H/A:H
Contributor-level access is low-privilege (PR:L), victim must view the post (UI:R), script executes in a different security scope (S:C), and stored XSS yields limited confidentiality/integrity impact (C:L/I:L, A:N).
Primary rating from Vendor (WPScan).
CVSS VectorVendor: WPScan
Lifecycle Timeline
2DescriptionCVE.org
The Text Styler WordPress plugin through 1.1.1 does not sanitise and escape user-supplied styling values before outputting them within a front-end style block, and does not verify that a user may edit the target post, allowing users with contributor-level access or above to store JavaScript that executes in the browser of anyone viewing the affected post, including administrators.
Threat Intelligence Overview
How this decision was reached
The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.
What every action level means
SSVC AssessmentENISA
Priority Score
Attack Technique
Cross-Site Scripting occurs when an application accepts untrusted data and sends it to a web browser without proper validation or encoding.
EUVD-2026-84275
GHSA-gxqc-8737-rfmf
NVD
CVE.org
EPSS
Vulnrichment
Exploit-DB