Skip to main content

TinyMCE EUVDEUVD-2026-111106

| CVE-2026-116675 HIGH
Cross-site Scripting (XSS) (CWE-79)
2026-10-27 GitHub_M GHSA-mf2p-h6hf-fcwm
8.5
CVSS 4.0 · Vendor: GitHub_M
View

Attack ChainAIDerived

Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain

  1. Access
    Authenticate as low-privileged content author
  2. Delivery
    Submit span with crafted data-mce-object and data-mce-p-onerror
  3. Exploit
    Media plugin builds element in active document pre-sanitization
  4. Execution
    Event handler script executes in victim browser
  5. Impact
    Hijack 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.

This Week Schedule remediation this week. Why: HIGH severity (CVSS 7.0-8.9).
1 PoC candidate (unverified) Patch available 0.3% exploitation probability (EPSS)

Get an e-mail when this CVE is exploited, patched or re-scored. Free account.

Alert me

AnalysisAIv1 – 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

tinymce 7.9.3, < 7.9.4
tinymce 8.5.1, < 8.9.3

Affected Packages

composer tinymce fix: 7.9.4, 8.9.3
composer tinymce/tinymce fix: 7.9.4, 8.9.3
npm tinymce fix: 7.9.4, 8.9.3
npm tinymce/tinymce fix: 7.9.4, 8.9.3
nuget tinymce fix: 7.9.4, 8.9.3
nuget tinymce/tinymce fix: 7.9.4, 8.9.3
euvd tinymce fix: 7.9.4, 8.9.3

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

Vendor (GitHub_M) PRIMARY 8.5 HIGH
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
vuln.today AI 8.7 HIGH

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.

3.1 AV:N/AC:L/PR:L/UI:R/S:C/C:H/I:H/A:N
4.0 AV:N/AC:L/AT:N/PR:L/UI:P/VC:H/VI:H/VA:N/SC:N/SI:N/SA:N

Primary rating from Vendor (GitHub_M).

CVSS VectorVendor: GitHub_M

Attack Vector
Network
Attack Complexity
Low
Attack Requirements
None
Privileges Required
Low
User Interaction
Passive
Vulnerable system: Confidentiality
High
Vulnerable system: Integrity
High
Vulnerable system: Availability
None
Subsequent system: Confidentiality
None
Subsequent system: Integrity
None
Subsequent system: Availability
None

Lifecycle Timeline

2
Patch available
Oct 27, 2026 - 17:18 EUVD
CVE Published
Oct 27, 2026 - 16:47 cve.org
HIGH 8.5

DescriptionCVE.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

Why It Matters

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.

Business Impact: High
Compensating Controls

Apply vendor patch.

Threat Intelligence Overview

EPSS Score
0.3%
Top 72% exploitable
Prevalence
High
TinyMCE is one of the most widely embedded rich-text editors in web apps
Threat Intel
1
1 source
Data Quality
5 sources
Confidence: Medium

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.

SignalValue
Severity HIGH
CISA KEV No
Public POC Yes
EPSS 0.3%
Patch available Yes
Active threat No
Deciding rule
HIGH severity (CVSS 7.0-8.9)
What every action level means
Emergency Immediate action required. Criteria: CRITICAL + in CISA KEV (actively exploited) without patch, OR CRITICAL + EPSS > 30% without patch, OR CRITICAL + active threat signals without patch.
Act Now Prioritize within 24-48h. Criteria: in KEV with patch available, OR CRITICAL + public POC, OR HIGH + EPSS > 10%, OR CRITICAL + active threat, OR any CRITICAL severity.
This Week Schedule remediation this week. Criteria: HIGH severity (CVSS 7.0-8.9). Patch within normal change window.
This Month Plan within 30 days. Criteria: MEDIUM severity (CVSS 4.0-6.9), lower exploitation probability. Include in regular patch cycle.
Monitor Track and reassess. Criteria: LOW severity (CVSS 0.1-3.9), minimal exploitation risk. No immediate action needed.

SSVC AssessmentENISA

SSVC Decision· derived
Scheduled
Exploitation· derived
Poc
System Exposure· derived
Open
Automatable· derived
No
Human Impact
High

Priority Score

62
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +42
PoC: +20
Weaponized: 0
Threat intel: 0
Gov advisory: 0

Attack Technique

Cross-Site Scripting occurs when an application accepts untrusted data and sends it to a web browser without proper validation or encoding.

CVE-2024-21911 MEDIUM POC
6.1 Jan 03

TinyMCE versions before 5.6.0 are affected by a stored cross-site scripting vulnerability. Rated medium severity (CVSS 6

CVE-2024-21910 MEDIUM POC
6.1 Jan 03

TinyMCE versions before 5.10.0 are affected by a cross-site scripting vulnerability. Rated medium severity (CVSS 6.1), t

CVE-2024-21908 MEDIUM POC
6.1 Jan 03

TinyMCE versions before 5.9.0 are affected by a stored cross-site scripting vulnerability. Rated medium severity (CVSS 6

CVE-2020-17480 MEDIUM POC
6.1 Aug 10

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

CVE-2019-1010091 MEDIUM POC
6.1 Jul 17

tinymce 4.7.11, 4.7.12 is affected by: CWE-79: Improper Neutralization of Input During Web Page Generation. Rated medium

CVE-2012-3414 MEDIUM POC
4.3 Jul 19

Cross-site scripting (XSS) vulnerability in swfupload.swf in SWFUpload 2.2.0.1 and earlier, as used in WordPress before

CVE-2013-2204 MEDIUM POC
4.3 Jul 08

moxieplayer.as in Moxiecode moxieplayer, as used in the TinyMCE Media plugin in WordPress before 3.5.2 and other product

CVE-2012-4230 MEDIUM POC
4.3 Apr 25

The bbcode plugin in TinyMCE 3.5.8 does not properly enforce the TinyMCE security policy for the (1) encoding directive

CVE-2014-3845 MEDIUM
6.8 May 22

Cross-site request forgery (CSRF) vulnerability in the TinyMCE Color Picker plugin before 1.2 for WordPress allows remot

CVE-2024-29881 MEDIUM
6.1 Mar 26

TinyMCE is an open source rich text editor. Rated medium severity (CVSS 6.1), this vulnerability is remotely exploitable

CVE-2024-29203 MEDIUM
6.1 Mar 26

TinyMCE is an open source rich text editor. Rated medium severity (CVSS 6.1), this vulnerability is remotely exploitable

CVE-2023-48219 MEDIUM
6.1 Nov 15

TinyMCE is an open source rich text editor. Rated medium severity (CVSS 6.1), this vulnerability is remotely exploitable

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy