By-passing Cross-Site Scripting Protection in HTML Sanitizer
Published 25 Jul 2023 · Updated 10 Sept 2026
Affected packages
- Affected
- >=1.0.0 <1.5.1
- Fixed in
- 1.5.1
composer require typo3/html-sanitizer:^1.5.1- Affected
- >=2.0.0 <2.1.2
- Fixed in
- 2.1.2
composer require typo3/html-sanitizer:^2.1.2Details
> ### CVSS: CVSS:3.1/AV:N/AC:H/PR:N/UI:R/S:C/C:L/I:L/A:N/E:F/RL:O/RC:C (4.4)
Problem
Due to an encoding issue in the serialization layer, malicious markup nested in a noscript element was not encoded correctly. noscript is disabled in the default configuration, but might have been enabled in custom scenarios. This allows bypassing the cross-site scripting mechanism of `typo3/html-sanitizer`.
Solution
Update to typo3/html-sanitizer versions 1.5.1 or 2.1.2 that fix the problem described.
Credits
Thanks to David Klein and Yaniv Nizry who reported this issue, and to TYPO3 security team members Oliver Hader and Benjamin Franzke who fixed the issue.
References
Is GHSA-59jf-3q9v-rh6g in any of your client repos?
Checking one package by hand is fine. Checking it across forty client projects is not. NPMscan reads the lockfiles in every GitHub repo you pick, finds each project with an affected typo3/html-sanitizer, and gives you the command that fixes it.
References
Advisory data from OSV.dev (opens OSV.dev in a new tab), refreshed daily.