Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessAuthenticate as low-privileged content author
-
DeliverySubmit span with crafted data-mce-object and data-mce-p-onerror
-
ExploitMedia plugin builds element in active document pre-sanitization
-
ExecutionEvent handler script executes in victim browser
-
ImpactHijack victim session or act as victim
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 the TinyMCE media plugin to be enabled (not every deployment enables it) and an affected version (7.9.3, or 8.5.1 through 8.9.2). The attacker must be able to inject editor content - consistent with PR:L, an authenticated low-privileged content author - using a crafted span bearing data-mce-object plus a data-mce-p-<event> handler attribute (the fix tests use onerror on video/audio/img). Because the stored payload executes when the content is processed/rendered, a victim interaction is needed (UI:P). Limiting factors that reduce realistic risk: the media plugin must be active, the attacker needs authenticated content-submission access, and another user must process the malicious content; installations on 7.9.4 / 8.9.3+ or without the media plugin are not exposed. |
| Impact | This is a genuine but conditional priority rather than a top-tier emergency. The CVSS 4.0 base score of 8.5 reflects high confidentiality and integrity impact (VC:H/VI:H) over a network vector with low complexity, but two metrics meaningfully constrain real-world risk: PR:L means the attacker must be an authenticated low-privileged user able to submit content, and UI:P means a victim must process/render that content. The vuln.today decision label is 'this_week' (not act_now/emergency), which aligns with a serious-but-not-panic posture. No CISA KEV listing and no EPSS score were provided, so there is no signal of active or widespread exploitation - exploitation status is 'no public exploit identified at time of analysis,' though note the vendor's own fix commit publicly includes the exact triggering payload (a span with data-mce-object and a data-mce-p-onerror event handler), which effectively demonstrates the trigger even if no standalone weaponized exploit is cataloged. The dominant risk driver is TinyMCE's very broad deployment as an embedded editor, not any evidence of mass exploitation; this reads as a widely-applicable stored-XSS fix to roll out promptly in affected 7.9.3 and 8.5.1-8.9.2 installs that have the media plugin enabled. |
| Exploit ScenarioDerived | An authenticated low-privileged user of a web application embedding a vulnerable TinyMCE (media plugin enabled) submits content containing a crafted span using data-mce-object with a data-mce-p-onerror event-handler attribute (e.g. for a video/audio/img element). When the editor processes this content, the element is created in the active document before sanitization, so the event handler fires and runs attacker script in another user's browser session. No standalone public exploit is cataloged, but the vendor's fix commit discloses working trigger payloads in its test cases. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Oct 28, 2026
Stored cross-site scripting in the TinyMCE rich text editor's media plugin lets a low-privileged authenticated content author plant a crafted span carrying data-mce-object and data-mce-p-<event> handler attributes that the editor materialises into real video/audio/img elements and executes before sanitisation runs. Affected are TinyMCE 7.9.3 and versions 8.5.1 through 8.9.2 with the media plugin enabled; the vendor fixed it in 7.9.4 and 8.9.3 by building those elements in a non-scripting document. Exploitation needs authenticated content-injection access plus a second user processing the stored content, so this is a genuine but conditional priority rather than a top-tier emergency; no public exploit was identified at the time of analysis and there is no CISA KEV entry.
RemediationAI
Vendor-released patches are available: upgrade TinyMCE to 8.9.3 or later on the 8.x line, or to 7.9.4 or later on the 7.x line, applying the equivalent npm/tinymce, nuget/TinyMCE or composer/tinymce/tinymce package bump. The fix commit is https://github.com/tinymce/tinymce/commit/bd1ab5ef024c648c3f9c0b409e54a6c227c7d8a2, referenced from advisory GHSA-mf2p-h6hf-fcwm, whose release notes are at https://www.tiny.cloud/docs/tinymce/7/7.9.4-release-notes/#overview and https://www.tiny.cloud/docs/tinymce/latest/8.9.3-release-notes/#overview. The advisory states that no official workaround is available, so updating is the only complete fix; the exposure-limiting condition confirmed by the advisory is that the flaw sits in the media plugin, so installations that do not enable that plugin are not exposed to this path, though removing it costs embedded media support in the editor. Because payloads are stored and execute when another user processes the content, also review existing stored content for span elements bearing data-mce-object combined with data-mce-p-on* attributes after patching, as the upgrade prevents new execution but does not by itself clean previously persisted markup.
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 stores non-native embedded media as placeholder spans that carry the intended element name in data-mce-object and each desired attribute as data-mce-p-<name>; the media plugin's FilterContent logic reconstitutes the real element from those attributes. Before the fix, that reconstruction used document.createElement against the live editor document, so any attribute the attacker encoded as data-mce-p-* was applied to a live DOM node and could include event handlers such as onerror. The commit for TINYMCE-14932 instead parses an empty string with DOMParser into an inert document and calls createElement on that document, so created elements are not associated with the active browsing context and handler attributes cannot fire; matching regression tests assert that video, audio and img elements with data-mce-p-onerror are stripped to a clean src-only element. This is CWE-79 (improper neutralisation of input during web page generation): user-controlled markup is deserialised and attached to the DOM ahead of the sanitisation step, inverting the intended order of operations, and the resulting script persists in stored editor content.
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
CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:P/VC:H/VI:H/VA:N/SC:N/SI:N/SA:N
Authenticated content author (PR:L) submits stored payload that runs in a victim's browser on interaction (UI:R), crossing into the victim's security context (S:C) with high C/I impact and no availability effect.
Primary rating from Vendor (GitHub_M).
CVSS VectorVendor: GitHub_M
Lifecycle Timeline
2DescriptionCVE.org
TinyMCE is an open source rich text editor. From 7.9.3 until 7.9.4 and from 8.5.1 until 8.9.3, the media plugin creates elements crafted through data-mce-object in the active document before sanitization. Those elements can execute malicious scripts during processing, resulting in stored cross-site scripting for users with the media plugin enabled. This issue is fixed in versions 8.9.3 and 7.9.4.
Technical POC Analysis
CWE-79 (stored cross-site scripting).
Full technical POC analysis - root cause, step-by-step exploitation and patch breakdown - is part of the Pro and Business plans.
Latest POC
1 PoC candidate from github (unverified)
Sign in to open the public PoC links collected for this CVE.
Executive ViewAI
A high-severity stored cross-site scripting vulnerability in the TinyMCE rich text editor's media plugin enables authenticated content authors to inject malicious code that executes when other users view the affected content. This could compromise privileged accounts and lead to data theft or system compromise, particularly if the editor is used by administrators or trusted personnel. Leadership should treat this as a priority risk if TinyMCE is widely deployed or handles sensitive workflows.
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.
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
TinyMCE is an open source rich text editor. Rated medium severity (CVSS 6.1), this vulnerability is remotely exploitable
EUVD-2026-111106
GHSA-mf2p-h6hf-fcwm
NVD
CVE.org
EPSS
Exploit-DB