ghsa-c5c9-8c6m-727v
Vulnerability from github
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
{ "affected": [ { "package": { "ecosystem": "Packagist", "name": "typo3/cms-core" }, "ranges": [ { "events": [ { "introduced": "7.0.0" }, { "fixed": "7.6.53" } ], "type": "ECOSYSTEM" } ] }, { "package": { "ecosystem": "Packagist", "name": "typo3/cms-core" }, "ranges": [ { "events": [ { "introduced": "8.0.0" }, { "fixed": "8.7.42" } ], "type": "ECOSYSTEM" } ] }, { "package": { "ecosystem": "Packagist", "name": "typo3/cms-core" }, "ranges": [ { "events": [ { "introduced": "10.0.0" }, { "fixed": "10.4.19" } ], "type": "ECOSYSTEM" } ] }, { "package": { "ecosystem": "Packagist", "name": "typo3/cms-core" }, "ranges": [ { "events": [ { "introduced": "11.0.0" }, { "fixed": "11.3.2" } ], "type": "ECOSYSTEM" } ] }, { "package": { "ecosystem": "Packagist", "name": "typo3/cms-core" }, "ranges": [ { "events": [ { "introduced": "9.0.0" }, { "fixed": "9.5.29" } ], "type": "ECOSYSTEM" } ] }, { "package": { "ecosystem": "Packagist", "name": "typo3/cms" }, "ranges": [ { "events": [ { "introduced": "10.0.0" }, { "fixed": "10.4.19" } ], "type": "ECOSYSTEM" } ] }, { "package": { "ecosystem": "Packagist", "name": "typo3/cms" }, "ranges": [ { "events": [ { "introduced": "11.0.0" }, { "fixed": "11.3.2" } ], "type": "ECOSYSTEM" } ] }, { "package": { "ecosystem": "Packagist", "name": "typo3/cms" }, "ranges": [ { "events": [ { "introduced": "9.0.0" }, { "fixed": "9.5.29" } ], "type": "ECOSYSTEM" } ] }, { "package": { "ecosystem": "Packagist", "name": "typo3/cms" }, "ranges": [ { "events": [ { "introduced": "8.0.0" }, { "fixed": "8.7.42" } ], "type": "ECOSYSTEM" } ] }, { "package": { "ecosystem": "Packagist", "name": "typo3/cms" }, "ranges": [ { "events": [ { "introduced": "7.0.0" }, { "fixed": "7.6.53" } ], "type": "ECOSYSTEM" } ] } ], "aliases": [ "CVE-2021-32768" ], "database_specific": { "cwe_ids": [ "CWE-79" ], "github_reviewed": true, "github_reviewed_at": "2021-08-16T22:38:47Z", "nvd_published_at": "2021-08-10T17:15:00Z", "severity": "MODERATE" }, "details": "\u003e ### Meta\n\u003e * 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)\n\n### Problem\nFailing 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](https://docs.typo3.org/m/typo3/reference-typoscript/10.4/en-us/Functions/Htmlparser.html)_ do not consider all potentially malicious HTML tag \u0026 attribute combinations per default.\n\nIn addition, the lack of comprehensive default node configuration for rich-text fields in the backend user interface fosters this malfunction.\n\nIn 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.\n\n### Solution\nUpdate 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.\n\nCustom package _[typo3/html-sanitizer](https://github.com/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.\n\nDuring 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](https://docs.typo3.org/c/typo3/cms-core/master/en-us/Changelog/9.5.x/Important-94484-IntroduceHTMLSanitizer.html).\n\n### Credits\nThanks to Benjamin Stiber, Gert-Jan Jansma, G\u00e1bor \u00c1cs-Kurucz, Alexander Kellner, Richie Lee, Nina R\u00f6sch who reported this issue, and to TYPO3 security team member Oliver Hader, as well as TYPO3 contributor Susanne Moog who fixed the issue.\n\n### References\n* [TYPO3-CORE-SA-2021-013](https://typo3.org/security/advisory/typo3-core-sa-2021-013)", "id": "GHSA-c5c9-8c6m-727v", "modified": "2024-02-07T18:51:52Z", "published": "2021-08-19T15:53:12Z", "references": [ { "type": "WEB", "url": "https://github.com/TYPO3/TYPO3.CMS/security/advisories/GHSA-c5c9-8c6m-727v" }, { "type": "WEB", "url": "https://github.com/TYPO3/typo3/security/advisories/GHSA-c5c9-8c6m-727v" }, { "type": "ADVISORY", "url": "https://nvd.nist.gov/vuln/detail/CVE-2021-32768" }, { "type": "WEB", "url": "https://github.com/FriendsOfPHP/security-advisories/blob/master/typo3/cms-core/CVE-2021-32768.yaml" }, { "type": "WEB", "url": "https://github.com/FriendsOfPHP/security-advisories/blob/master/typo3/cms/CVE-2021-32768.yaml" }, { "type": "WEB", "url": "https://typo3.org/security/advisory/typo3-core-sa-2021-013" } ], "schema_version": "1.4.0", "severity": [ { "score": "CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:L/I:L/A:N", "type": "CVSS_V3" } ], "summary": "Cross-Site Scripting via Rich-Text Content" }
Sightings
Author | Source | Type | Date |
---|
Nomenclature
- Seen: The vulnerability was mentioned, discussed, or seen somewhere by the user.
- Confirmed: The vulnerability is confirmed from an analyst perspective.
- Exploited: This vulnerability was exploited and seen by the user reporting the sighting.
- Patched: This vulnerability was successfully patched by the user reporting the sighting.
- Not exploited: This vulnerability was not exploited or seen by the user reporting the sighting.
- Not confirmed: The user expresses doubt about the veracity of the vulnerability.
- Not patched: This vulnerability was not successfully patched by the user reporting the sighting.