CVE-2022-23499 json
Cross-Site Scripting Protection bypass in HTML Sanitizer
published 2022-12-13 3 y ago modified 2026-06-17 4 mo ago also GHSA-hvwx-qh2h-xcfj , EUVD-2022-7652
- cvss
- 6.1
- version 3.1, CNA
- cisa kev
- Not listed
- not in CISA's catalog
- epss
- 0.5%
- EPSS 0.5% chance of exploitation in 30 days, percentile 40%
- public exploits
- 0
- none known
Summary
HTML sanitizer is written in PHP, aiming to provide XSS-safe markup based on explicitly allowed tags, attributes and values. In versions prior to 1.5.0 or 2.1.1, malicious markup used in a sequence with special HTML CDATA sections cannot be filtered and sanitized due to a parsing issue in the upstream package masterminds/html5. This allows bypassing the cross-site scripting mechanism of typo3/html-sanitizer. The upstream package masterminds/html5 provides HTML raw text elements (`script`, `style`, `noframes`, `noembed` and `iframe`) as DOMText nodes, which were not processed and sanitized further. None of the mentioned elements were defined in the default builder configuration, that's why only custom behaviors, using one of those tag names, were vulnerable to cross-site scripting. This issue has been fixed in versions 1.5.0 and 2.1.1.
Patch / fix
- packagist typo3/html-sanitizer 1.5.0, 2.1.1
- packagist typo3/cms 10.4.33, 11.5.20, 12.1.1
- typo3 html_sanitizer 2.1.1
- github.com/TYPO3/html-sanitizer#105 pull request
- github.com/TYPO3/html-sanitizer#106 pull request
- github.com/TYPO3/html-sanitizer/releases/tag/v1.5.0 release
- github.com/TYPO3/html-sanitizer/releases/tag/v2.1.1 release
CISA SSVC
- Exploitation
- none
- Automatable
- no
- Technical impact
- partial
- Assessed
- 18 mo ago
Exploit prediction
0.47% chance of exploitation in the next 30 days, higher than 40% of all scored CVEs (FIRST EPSS, 2026-11-08).
CVSS scores
| assigned by | version | score | vector |
|---|---|---|---|
| CNA | 3.1 | 6.1 | CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:L/I:L/A:N |
| NVD | 3.1 | 6.1 | CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:L/I:L/A:N |
| GitHub | 3.1 | 6.1 | CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:L/I:L/A:N |
Affected packages
| ecosystem | package | affected | fixed in |
|---|---|---|---|
| packagist | typo3/html-sanitizer | >=1.0.0, <1.5.0 >=2.0.0, <2.1.1 |
1.5.0 2.1.1 |
| packagist | typo3/cms | >=10.0.0, <10.4.33 >=11.0.0, <11.5.20 >=12.0.0, <12.1.1 |
10.4.33 11.5.20 12.1.1 |
Affected products
- TYPO3 html-sanitizer
Classification
- Weakness
-
- CWE-79 Improper Neutralization of Input During Web Page Generation
References
-
github.com
/TYPO3/html-sanitizer/pull/105
web
-
github.com
/TYPO3/html-sanitizer/pull/106
web
-
github.com
/TYPO3/html-sanitizer/security/advisories/GHSA-hvwx-qh2h-xcfj
web, third-party-advisory
-
nvd.nist.gov
/vuln/detail/CVE-2022-23499
advisory
-
github.com
/FriendsOfPHP/security-advisories/blob/master/typo3/cms/CVE-2022-23499.yaml
web
-
github.com
/TYPO3/html-sanitizer
package
-
github.com
/TYPO3/html-sanitizer/releases/tag/v1.5.0
web
-
github.com
/TYPO3/html-sanitizer/releases/tag/v2.1.1
web
-
typo3.org
/security/advisory/typo3-core-sa-2022-017
web
Sources
- CVE List CVE-2022-23499
- GitHub Advisory GHSA-hvwx-qh2h-xcfj
- NVD CVE-2022-23499
Fencer Vulns keeps one entry per vulnerability: the CVE id wins, then GHSA, and records that alias each other are merged, except that two CVEs always keep separate entries. The same data is available as JSON.