Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
ReconObtain low-privileged authoring account
-
DeliveryCraft forged mce:protected comment payload
-
ExploitSubmit content via TinyMCE editor
-
InstallPayload stored bypassing sanitization
-
C2Victim loads content in editor
-
ExecuteScript executes in victim browser session
-
ImpactHijack session or escalate to admin
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 | Exploitation requires that the target application enables TinyMCE's 'protect' configuration option (a non-default code-preservation feature typically used to shield server-side templating tags like PHP/ASP), that the attacker has a low-privileged account capable of submitting content into a TinyMCE-managed field (PR:L per the CVSS vector), and that a victim subsequently loads or restores the stored content into a TinyMCE-rendered context (UI:R). Limiting factors that reduce real-world exposure: deployments that do not use the protect option are not vulnerable, fully anonymous content submission is not assumed by the vector, and the payload only fires when content is restored through the editor rather than on any arbitrary page render. |
| Impact | Signals are mixed but lean toward a real priority for any application that exposes TinyMCE with the protect option enabled. The CVSS 3.1 vector AV:N/AC:L/PR:L/UI:R/S:C/C:H/I:H/A:N indicates network reach, low complexity, low privileges, and required user interaction, with a changed scope reflecting that XSS executes in the victim's browser context outside the vulnerable component - driving the 8.7 score. PR:L means the attacker must hold at least a low-privileged account (typical for a content-author or commenter role), and UI:R means a victim must view/load the stored content. EPSS data was not provided in the input, so likelihood of broad exploitation cannot be quantified; the vulnerability is not in CISA KEV and no public PoC is referenced beyond the vendor advisory, so this should be treated as no public exploit identified at time of analysis. The realistic risk is highest for multi-tenant SaaS and CMS deployments where attacker-controlled content is rendered to higher-privileged users (e.g., admins reviewing submissions), enabling session hijack or admin account takeover through the scope-changed XSS. |
| Exploit ScenarioDerived | An attacker with a low-privileged authoring account on a CMS that embeds a vulnerable TinyMCE version with the protect option enabled submits a forum post, comment, or page draft containing a forged mce:protected comment wrapping a script payload. When an administrator or another user later opens the stored content in the editor (or in a view that uses TinyMCE to restore content), the smuggled JavaScript executes in the victim's session, enabling cookie theft, CSRF against admin endpoints, or full account takeover. No public PoC is referenced beyond the vendor advisory at the time of analysis. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – May 28, 2026
Stored cross-site scripting in TinyMCE rich text editor allows authenticated attackers to inject persistent JavaScript by forging mce:protected comments that bypass the editor's sanitization layer. Affected deployments are those using the protect configuration option in versions prior to 5.11.1, 7.9.3, and 8.5.1, where malicious scripts execute when previously stored content is restored into the editor context. No public exploit identified at time of analysis and the issue is not listed in CISA KEV, but the CVSS 8.7 (scope-changed) rating reflects high confidentiality and integrity impact against the user's browser session.
RemediationAI
Vendor-released patch: upgrade TinyMCE to 5.11.1, 7.9.3, or 8.5.1 (or later) on the corresponding major-version line, as documented in the GHSA-v98h-vmpc-fpqv advisory and the 7.9.3 and 8.5.1 release notes linked above. If immediate upgrade is not possible, disable the 'protect' configuration option in the TinyMCE initialization - note the trade-off that any server-side templating syntax (PHP, ASP, JSP tags) previously shielded by protect will then be subject to the editor's normal HTML processing and may be altered or stripped. As an additional compensating control, enforce a strict Content-Security-Policy that disallows inline script and unsafe-eval on pages that render user-authored TinyMCE content, which limits payload execution at the cost of breaking any legitimate inline scripts in the same documents; and review server-side output sanitization (e.g., DOMPurify on render) to defense-in-depth filter mce:protected comment markers before content is restored.
Affected VersionsENISA
Affected Packages
Source: OSV (Open Source Vulnerabilities)
Affects your stack
Affects 2 packages in composer, npm, nuget and 1 more
Checking this CVE against your own stacks and servers is part of the Basic plan and up.
Technical ContextAI · show details
TinyMCE is a widely embedded open source WYSIWYG/rich text editor (CPE cpe:2.3:a:tinymce:tinymce) used in CMS platforms, ticketing systems, and SaaS dashboards. The vulnerability is a CWE-79 (Improper Neutralization of Input During Web Page Generation) flaw rooted in how TinyMCE handles mce:protected comment nodes - a special internal marker used by the 'protect' option to preserve fragments of content (typically server-side templating syntax like PHP or ASP tags) from being mangled by the editor's HTML sanitization. By crafting input that forges this protected-comment wrapper, an attacker can smuggle script content past the sanitizer; the payload is rehydrated and executed when the editor later restores the content into the DOM. The bug is fixed in the 5.11.1, 7.9.3, and 8.5.1 release lines per the GHSA-v98h-vmpc-fpqv advisory.
Know when Tinymce 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:L/UI:R/S:C/C:L/I:L/A:N
Primary rating from NVD · only source for this CVE.
CVSS VectorNVD
Lifecycle Timeline
3DescriptionNVD
TinyMCE is an open source rich text editor. Prior to 5.11.1, 7.9.3, and 8.5.1, there is a stored XSS vulnerability via forged mce:protected comments. Allows attackers to bypass sanitization and inject scripts that execute when content is restored. Impacts users who utilize the protect option. This vulnerability is fixed in 5.11.1, 7.9.3, and 8.5.1.
Blast Radius
ecosystem impact- 2 npm packages depend on tinymce (2 direct, 0 indirect)
Ecosystem-wide dependent count for version 6.0.0.
Executive ViewAI
TinyMCE rich text editor versions prior to 5.11.1, 7.9.3, and 8.5.1 contain a stored cross-site scripting vulnerability that allows authenticated users to inject persistent malicious scripts. Organizations using TinyMCE-powered content management systems face risk of user account compromise, session hijacking, and unauthorized access to sensitive data from authenticated attackers or compromised administrator accounts.
No vendor-released patch identified at time of analysis. Implement Content Security Policy (CSP) headers restricting inline script execution; apply additional input sanitization at the application layer beyond TinyMCE's built-in protection; restrict TinyMCE editor access to trusted administrative users only; disable the 'protect' configuration option if business requirements permit; audit recent content modifications for suspicious injected scripts.
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.
Stored cross-site scripting in the TinyMCE rich text editor's media plugin lets a low-privileged authenticated content a
TinyMCE versions before 5.6.0 are affected by a stored cross-site scripting vulnerability. Rated medium severity (CVSS 6
TinyMCE versions before 5.10.0 are affected by a cross-site scripting vulnerability. Rated medium severity (CVSS 6.1), t
TinyMCE versions before 5.9.0 are affected by a stored cross-site scripting vulnerability. Rated medium severity (CVSS 6
TinyMCE before 4.9.7 and 5.x before 5.1.4 allows XSS in the core parser, the paste plugin, and the visualchars plugin by
tinymce 4.7.11, 4.7.12 is affected by: CWE-79: Improper Neutralization of Input During Web Page Generation. Rated medium
Cross-site scripting (XSS) vulnerability in swfupload.swf in SWFUpload 2.2.0.1 and earlier, as used in WordPress before
moxieplayer.as in Moxiecode moxieplayer, as used in the TinyMCE Media plugin in WordPress before 3.5.2 and other product
The bbcode plugin in TinyMCE 3.5.8 does not properly enforce the TinyMCE security policy for the (1) encoding directive
Cross-site request forgery (CSRF) vulnerability in the TinyMCE Color Picker plugin before 1.2 for WordPress allows remot
TinyMCE is an open source rich text editor. Rated medium severity (CVSS 6.1), this vulnerability is remotely exploitable
TinyMCE is an open source rich text editor. Rated medium severity (CVSS 6.1), this vulnerability is remotely exploitable
EUVD-2026-32923
GHSA-v98h-vmpc-fpqv
NVD
CVE.org
EPSS
Vulnrichment
VulDB
Exploit-DB