Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
ReconIdentify site with LiteSpeed Cache ≤7.8.1
-
DeliveryObtain prior comment approval on target site
-
ExploitSubmit decimal-encoded XSS payload inside <code> tag
-
Installwp_kses passes payload as safe text
-
C2LiteSpeed Cache renders unescaped output to visitors
-
ExecuteVictim browser executes injected script
-
ImpactHarvest session tokens or perform 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 | Two explicit site-level conditions must both be true simultaneously: (1) The commenting system must allow users whose comments have previously been approved to post new comments without moderation (i.e., WordPress's 'Comment author must have a previously approved comment' trust setting is active and the attacker's identity has a prior approval on the target site). (2) The require_name_email setting must be disabled, removing the name-and-email gating that would otherwise add friction to unauthenticated submission. If either condition is absent - if comments require moderation for all users, or if name/email is required - the attack path is blocked. Exploitation is further limited to WordPress installations running LiteSpeed Cache version 7.8.1 or earlier; sites on 7.9+ are not affected. No server-side access, WordPress account, or administrative privilege is required by the attacker once both pre-conditions are met. |
| Impact | The provided CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:L/I:L/A:N yields a base score of 7.2, but several metrics warrant scrutiny. PR:N and AC:L overstate accessibility: exploitation requires two distinct non-default pre-conditions (prior comment approval for the attacker's account AND require_name_email disabled), which the CVSS AC:L label does not capture. UI:N is also arguable - stored XSS canonically requires a victim to browse to the injected page, which most CVSS assessors score as UI:R. Real-world risk is meaningful but bounded: WordPress sites with comment approval workflows enabled and require_name_email turned off are common in community-oriented deployments, meaning even a mid-sized municipal IT team in leszno running a public-facing WordPress site could be exposed if they rely on LiteSpeed Cache and have not hardened comment settings. No EPSS score was provided in the input, and CISA KEV status is absent - exploitation probability must be inferred from structural signals rather than empirical data. The scope-changed flag (S:C) is credible given that a single stored payload can execute across all visitor sessions. The net assessment is moderate-to-high priority for sites matching the exploitation conditions, but not a universal emergency given the prerequisite configuration state. |
| Exploit ScenarioDerived | An attacker identifies a WordPress site running LiteSpeed Cache 7.8.1 or earlier with require_name_email disabled and a comment section where a prior comment from their email address has already been approved. They submit a new comment containing a <code> element whose text content encodes a malicious script tag entirely as decimal numeric character references; wp_kses passes the content as safe text, and LiteSpeed Cache's media.cls.php renders it without re-encoding. Every authenticated visitor - including administrators - who subsequently loads the affected page executes the injected script, enabling session cookie theft or admin-level actions via the victim's credentials. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Aug 28, 2026
Stored XSS in the LiteSpeed Cache WordPress plugin (all versions through 7.8.1) allows unauthenticated attackers to permanently inject malicious JavaScript into comment-bearing pages by exploiting a bypass in WordPress's wp_kses sanitizer via decimal numeric character references inside permitted HTML elements. The payload persists in the database and executes in every subsequent visitor's browser, creating session-hijacking, credential-theft, and site-defacement opportunities at scale. No active exploitation is confirmed in CISA KEV, but the changeset between tags 7.8.1 and 7.9 on the WordPress plugin repository confirms a vendor-released fix is available.
RemediationAI
Upgrade LiteSpeed Cache to version 7.9 or later; the fix is confirmed by the WordPress plugin repository changeset at https://plugins.trac.wordpress.org/changeset?old_path=%2Flitespeed-cache/tags/7.8.1&new_path=%2Flitespeed-cache/tags/7.9, which patches media.cls.php. If immediate upgrade is not possible, two compensating controls reduce exploitation surface: (1) Enable the require_name_email setting in WordPress comment settings (Dashboard → Settings → Discussion → Comment author must fill out name and email), which closes the unauthenticated submission path - trade-off is minor friction for legitimate commenters. (2) Disable commenting entirely on sensitive or high-traffic pages, or switch to a moderation queue that holds all comments pending manual approval regardless of prior approval history - this prevents injected payloads from reaching visitors even if submitted. Neither workaround eliminates the underlying sanitization flaw; they are temporary controls only. Wordfence advisory: https://www.wordfence.com/threat-intel/vulnerabilities/id/0b045f3d-8412-4e35-b369-2b485639274d.
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
LiteSpeed Cache's media.cls.php module (lines 777, 1317, 1358, 1405 per Trac references) processes comment content and renders it without adequate output escaping. WordPress's wp_kses sanitizer is the intended first-line defense, but it does not inspect text-node content for attribute-like substrings: a payload encoded entirely as decimal numeric character references (e.g., < for <, " for ") placed inside an allowed element such as <code> reaches kses validation as plain text, not markup. Because kses does not parse data-settings="..." as an HTML attribute when it appears in the text content of a safelisted tag, the dangerous substring is passed through unmodified and later rendered by the browser as live HTML. CWE-79 (Improper Neutralization of Input During Web Page Generation) is the root cause class - insufficient encoding at both storage and output phases. The CPE string cpe:2.3:a:litespeedtech:litespeed_cache:*:*:*:*:*:*:*:* confirms the entire version line up to and including 7.8.1 is affected.
Know when Litespeed Cache 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:N/UI:N/S:C/C:L/I:L/A:N
AC:H reflects two mandatory non-default site conditions; UI:R required because a victim must visit the injected page for script execution.
Primary rating from Vendor (Wordfence).
CVSS VectorVendor: Wordfence
DescriptionCVE.org
The LiteSpeed Cache plugin for WordPress is vulnerable to Stored Cross-Site Scripting via Comment Content in all versions up to, and including, 7.8.1 due to insufficient input sanitization and output escaping. This makes it possible for unauthenticated attackers to inject arbitrary web scripts in pages that will execute whenever a user accesses an injected page. A comment payload crafted exclusively from decimal numeric character references (e.g. ", <, >) placed inside an allowed element such as <code> bypasses WordPress's wp_kses sanitization, as kses does not treat a data-settings="..." substring within text content as an HTML attribute, allowing the malicious payload to reach the vulnerable function. For this to be exploitable, the site must allow users with previously approved comments to write new comments, and the require_name_email setting must be disabled.
Executive ViewAI
LiteSpeed Cache, a WordPress plugin used by thousands of websites, contains a stored cross-site scripting vulnerability (CVE-2026-18978) that allows attackers to inject malicious code permanently into website pages. When visitors access compromised pages, their browsers execute the attacker's code, enabling credential theft and session hijacking. Organizations using LiteSpeed Cache through version 7.8.1 should treat this as a critical infrastructure risk affecting their entire user base.
Apply vendor patch.
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.
More in Litespeed Cache
View allAuthentication bypass in the LiteSpeed Cache WordPress plugin (versions prior to 6.5.0.1) allows unauthenticated remote
Privilege escalation in LiteSpeed Cache plugin for WordPress (versions up to and including 6.3.0.1) allows unauthenticat
Stored cross-site scripting in LiteSpeed Cache for WordPress (versions up to and including 5.7) allows remote unauthenti
Improper Neutralization of Input During Web Page Generation ('Cross-site Scripting') vulnerability in LiteSpeed Technolo
Relative Path Traversal vulnerability in LiteSpeed Technologies LiteSpeed Cache litespeed-cache allows Path Traversal.4.
Incorrect Privilege Assignment vulnerability in LiteSpeed Technologies LiteSpeed Cache litespeed-cache allows Privilege
Missing Authorization vulnerability in LiteSpeed Technologies LiteSpeed Cache.7. Rated high severity (CVSS 8.2), this vu
Unauthenticated SSRF in the LiteSpeed Cache WordPress plugin (versions ≤ 7.9) allows any remote attacker without credent
The LiteSpeed Cache plugin for WordPress is vulnerable to Stored Cross-Site Scripting via the 'esi' shortcode in version
Improper Neutralization of Input During Web Page Generation ('Cross-site Scripting') vulnerability in LiteSpeed Technolo
Stored cross-site scripting in the LiteSpeed Cache plugin for WordPress (all versions up to and including 7.9.1) lets au
Stored Cross-Site Scripting in LiteSpeed Cache for WordPress (all versions through 7.7) allows authenticated attackers h
EUVD-2026-67404
GHSA-rm48-v2jm-fxxq
NVD
CVE.org
EPSS
Vulnrichment
Exploit-DB