Skip to content

Cross-Site Scripting via Rich-Text Content

Moderate severity GitHub Reviewed Published Aug 10, 2021 in TYPO3/typo3 • Updated Feb 7, 2024

Package

composer typo3/cms (Composer)

Affected versions

>= 10.0.0, < 10.4.19
>= 11.0.0, < 11.3.2
>= 9.0.0, < 9.5.29
>= 8.0.0, < 8.7.42
>= 7.0.0, < 7.6.53

Patched versions

10.4.19
11.3.2
9.5.29
8.7.42
7.6.53
composer typo3/cms-core (Composer)
>= 7.0.0, < 7.6.53
>= 8.0.0, < 8.7.42
>= 10.0.0, < 10.4.19
>= 11.0.0, < 11.3.2
>= 9.0.0, < 9.5.29
7.6.53
8.7.42
10.4.19
11.3.2
9.5.29

Description

Meta

  • CVSS: CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:L/I:L/A:N/E:F/RL:O/RC (5.7)

Problem

Failing to properly parse, sanitize and encode malicious rich-text content, the content rendering process in the website frontend is vulnerable to cross-site scripting. Corresponding rendering instructions via TypoScript functionality HTMLparser do not consider all potentially malicious HTML tag & attribute combinations per default.

In addition, the lack of comprehensive default node configuration for rich-text fields in the backend user interface fosters this malfunction.

In default scenarios, a valid backend user account is needed to exploit this vulnerability. In case custom plugins used in the website frontend accept and reflect rich-text content submitted by users, no authentication is required.

Solution

Update to TYPO3 versions 7.6.53 ELTS, 8.7.42 ELTS, 9.5.29, 10.4.19, 11.3.2 that fix the problem described above.

Custom package typo3/html-sanitizer - based on allow-lists only - takes care of sanitizing potentially malicious markup. The default behavior is based on safe and commonly used markup - however, this can be extended or restricted further in case it is necessary for individual scenarios.

During the frontend rendering process, sanitization is applied to the default TypoScript path lib.parseFunc, which is implicitly used by the Fluid view-helper instruction f:format.html. Rich-text data persisted using the backend user interface is sanitized as well. Implementation details are explained in corresponding ChangeLog documentation.

Credits

Thanks to Benjamin Stiber, Gert-Jan Jansma, Gábor Ács-Kurucz, Alexander Kellner, Richie Lee, Nina Rösch who reported this issue, and to TYPO3 security team member Oliver Hader, as well as TYPO3 contributor Susanne Moog who fixed the issue.

References

References

@ohader ohader published to TYPO3/typo3 Aug 10, 2021
Published by the National Vulnerability Database Aug 10, 2021
Reviewed Aug 16, 2021
Published to the GitHub Advisory Database Aug 19, 2021
Last updated Feb 7, 2024

Severity

Moderate
6.1
/ 10

CVSS base metrics

Attack vector
Network
Attack complexity
Low
Privileges required
None
User interaction
Required
Scope
Changed
Confidentiality
Low
Integrity
Low
Availability
None
CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:L/I:L/A:N

Weaknesses

CVE ID

CVE-2021-32768

GHSA ID

GHSA-c5c9-8c6m-727v

Source code

No known source code

Credits

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