CVE-2026-47760: TinyMCE Cross-Site Scripting (XSS) vulnerability using sanitization bypass through nested SVGs
Impact TinyMCE 6.8.x contains an XSS vulnerability caused by improper SVG namespace scope handling in the sanitizer. A crafted payload using nested <svg> elements can bypass attribute sanitization and execute arbitrary JavaScript.
Patches This issue affects TinyMCE 6.8.x-7.0.x. The vulnerability is fixed in TinyMCE 7.1.0 and later.
Workarounds No official workaround available.
Acknowledgements Tiny thanks maple3142 (<https://maple3142.net>) of DEVCORE for their help identifying this vulnerability.
References Fix introduced in TinyMCE 7.1.0 though a rewrite of code causing the vulnerability.
Other sources
TinyMCE is an open source rich text editor. From 6.8.0 to before 7.1.0, TinyMCE contains an XSS vulnerability caused by improper SVG namespace scope handling in the sanitizer. A crafted payload using nested elements can bypass attribute sanitization and execute arbitrary JavaScript. This vulnerability is fixed in 7.1.0.
— NVD
Affected Software
Remediation
Recommended actions to resolve this vulnerability, in priority order.
- Upgrade
Upgrade
composer/tinymce/tinymceto a version that resolves this vulnerability.Fixed in 7.1.0 - Upgrade
Upgrade
nuget/TinyMCEto a version that resolves this vulnerability.Fixed in 7.1.0 - Upgrade
Upgrade
npm/tinymceto a version that resolves this vulnerability.Fixed in 7.1.0
Event History
Frequently Asked Questions
What is the severity of CVE-2026-47760?
CVE-2026-47760 has a high severity rating of 8.7.
How do I fix CVE-2026-47760?
To fix CVE-2026-47760, upgrade TinyMCE to version 7.1.0 or later.
What type of vulnerability is CVE-2026-47760?
CVE-2026-47760 is a Cross-Site Scripting (XSS) vulnerability.
What causes the vulnerability in CVE-2026-47760?
The vulnerability in CVE-2026-47760 is caused by improper handling of SVG namespace scope in the TinyMCE sanitizer.
What can attackers achieve with CVE-2026-47760?
Attackers can bypass attribute sanitization and execute arbitrary JavaScript using crafted payloads.