Skip to content

Cross-site scripting vulnerability in TinyMCE

High severity GitHub Reviewed Published Jan 29, 2020 in tinymce/tinymce • Updated Jun 27, 2023

Package

npm tinymce (npm)

Affected versions

< 4.9.7
>= 5.0.0, < 5.1.4

Patched versions

4.9.7
5.1.4

Description

Impact

A cross-site scripting (XSS) vulnerability was discovered in: the core parser, paste and visualchars plugins. 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.6 or lower and TinyMCE 5.1.3 or lower.

Patches

This vulnerability has been patched in TinyMCE 4.9.7 and 5.1.4 by improved parser logic and HTML sanitization.

Workarounds

The workarounds available are:

  • disable the impacted plugins
  • manually sanitize the content using the BeforeSetContent event (see below)
  • upgrade to either TinyMCE 4.9.7 or TinyMCE 5.1.4

Example: Manually sanitize content

editor.on('BeforeSetContent', function(e) {
  var sanitizedContent = ...; // Manually sanitize content here
  e.content = sanitizedContent;
});

Acknowledgements

Tiny Technologies would like to thank Michał Bentkowski for discovering this vulnerability.

References

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

For more information

If you have any questions or comments about this advisory:

References

@lnewson lnewson published to tinymce/tinymce Jan 29, 2020
Reviewed Jan 30, 2020
Published to the GitHub Advisory Database Jan 30, 2020
Last updated Jun 27, 2023

Severity

High

EPSS score

0.099%
(42nd percentile)

Weaknesses

CVE ID

CVE-2020-17480

GHSA ID

GHSA-27gm-ghr9-4v95

Source code

Loading Checking history
See something to contribute? Suggest improvements for this vulnerability.