TinyMCE 5.10.8

Overview

TinyMCE 5.10.8 was released for TinyMCE Enterprise and Tiny Cloud on Thursday, October 19th, 2023. It includes TinyMCE 5.10.8. These release notes provide an overview of the changes for TinyMCE 5.10.8, including:

This is the Tiny Cloud and TinyMCE Enterprise release notes. For information on the latest community version of TinyMCE, see: TinyMCE Changelog.

Security fixes

TinyMCE 5.10.8 provides a fix for the following security issue:

Specific HTML content caused mXSS when using undo/redo, the getContent API with the format: 'raw' option, the resetContent API, and the Autosave plugin

A mutation cross-site scripting (mXSS) vulnerability was discovered in TinyMCE’s core undo and redo functionality.

When a carefully-crafted HTML snippet passes the XSS sanitization layer, it is manipulated as a string by internal trimming functions before being stored in the undo stack.

If the HTML snippet is restored from the undo stack, the combination of the string manipulation and reparative parsing by the SaxParser API mutates the HTML maliciously, allowing an XSS payload to be executed.

This vulnerability also impacts these related TinyMCE APIs and plugins:

This vulnerability has been patched in TinyMCE 5.10.8 by ensuring HTML is trimmed using node-level manipulation instead of string manipulation.

Tiny Technologies would like to thank Masato Kinugawa of Cure53 for discovering this vulnerability.

Notification messages containing HTML were not properly XSS sanitized before being displayed.

A cross-site scripting (XSS) vulnerability was discovered in TinyMCE’s Notification Manager API. The vulnerability exploits TinyMCE’s unfiltered notification system, which is used in error handling. The conditions for this exploit requires carefully crafted malicious content to have been inserted into the editor and a notification to have been triggered.

When a notification was opened, the HTML within the text argument was displayed unfiltered in the notification. The vulnerability allowed arbitrary JavaScript execution when an notification presented in the TinyMCE UI for the current user. This issue could also be exploited by any integration which uses a TinyMCE notification to display unfiltered HTML content.

This vulnerability has been patched in TinyMCE 5.10.8 by ensuring that the HTML displayed in the notification is sanitized, preventing the exploit.

Tiny Technologies would like to thank Phillp Sinnott and Mikko Rantalainen for discovering this vulnerability.

Upgrading to the latest version of TinyMCE 5

The procedure for upgrading to the latest version of TinyMCE 5 depends on the deployment type.

Upgrading Tiny Cloud

Tiny Cloud provides the latest enterprise version of TinyMCE. For information on configuring Tiny Cloud, see: the Cloud deployment guide.

Upgrading TinyMCE Self-hosted manually

To upgrade to TinyMCE 5.10 using a manually downloaded package:

  1. Backup the tinymce/ directory so any customizations can be restored after the upgrade.

    Customizations for TinyMCE are typically stored in the following directories:

    tinymce/
    ├── icons/
    ├── langs/
    ├── plugins/
    ├── skins/
    │   ├── content/
    │   └── ui/
    └── themes/
  2. Download the latest version of TinyMCE.

    • For the TinyMCE Community Version, download tinymce_<VERSION>.zip from Get TinyMCE - Self-hosted releases, where <VERSION> is the latest version of TinyMCE.

    • For the TinyMCE Enterprise Version, download the TinyMCE Enterprise Bundle from Tiny Account > Downloads. The downloaded file will be named enterprise_latest.zip.

  3. Extract the downloaded .zip file to a temporary location.

  4. (If required) Install the latest language packs from Get TinyMCE - Language Packages.

  5. Copy customizations to the new tinymce/ directory. Ensure that only custom changes are added the new tinymce/ directory, such as:

    • Custom icons packs

    • Custom plugins

    • Custom skins

    • Custom themes

  6. Delete the existing tinymce/ directory and replace with the new tinymce/.

To simplify the upgrade process to future versions of TinyMCE:

  1. Host the TinyMCE customizations outside of the tinymce/ directory.

  2. Update your TinyMCE configuration as required:

    • Set the location of content CSS customizations using content_css.

    • Set the location of custom plugins using external_plugins.

    • Set the location of custom icon packages using icons_url instead of icons.

    • Set the location of custom localization packages using language_url instead of language.

    • Set the location of custom skin packages using skin_url instead of skin.

    • Set the location of custom themes using theme_url instead of theme.