Skip to content

XSS in TinyMCE

Moderate severity GitHub Reviewed Published May 7, 2020 in tinymce/tinymce • Updated Jan 9, 2023

Package

npm tinymce (npm)

Affected versions

< 4.9.10
>= 5.0.0, < 5.2.2

Patched versions

4.9.10
5.2.2

Description

Impact

A cross-site scripting (XSS) vulnerability was discovered in: the core parser and media plugin. The vulnerability allowed arbitrary JavaScript execution when inserting a specially crafted piece of content into the editor via the clipboard or APIs. This impacts all users who are using TinyMCE 4.9.9 or lower and TinyMCE 5.2.1 or lower.

Patches

This vulnerability has been patched in TinyMCE 4.9.10 and 5.2.2 by improved HTML parsing and sanitization logic.

Workarounds

The workarounds available are:

  • disable the media plugin and manually sanitize CDATA content (see below)
    or
  • upgrade to either TinyMCE 4.9.10 or TinyMCE 5.2.2

Example: Manually strip CDATA elements

setup: function(editor) {
  editor.on('PreInit', function() {
    editor.parser.addNodeFilter('#cdata', function(nodes) {
      for (var i = 0; i < nodes.length; i++) {
        nodes[i].remove();
      }
    });
  });
}

Acknowledgements

Tiny Technologies would like to thank Michał Bentkowski and intivesec for discovering these vulnerabilities.

References

https://www.tiny.cloud/docs/release-notes/release-notes522/#securityfixes

For more information

If you have any questions or comments about this advisory:

References

@lnewson lnewson published to tinymce/tinymce May 7, 2020
Reviewed May 11, 2020
Published to the GitHub Advisory Database May 11, 2020
Last updated Jan 9, 2023

Severity

Moderate

EPSS score

0.112%
(45th percentile)

Weaknesses

CVE ID

CVE-2019-1010091

GHSA ID

GHSA-c78w-2gw7-gjv3

Source code

No known source code
Loading Checking history
See something to contribute? Suggest improvements for this vulnerability.