Skip to main content

TYPO3 HTML Sanitizer EUVDEUVD-2026-35192

| CVE-2026-47345 MEDIUM
Cross-site Scripting (XSS) (CWE-79)
2026-06-08 TYPO3 GHSA-p5j5-4j3q-8mq8
5.1
CVSS 4.0 · NVD
Share

Severity by source

NVD PRIMARY
5.1 MEDIUM
CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:P/VC:N/VI:N/VA:N/SC:L/SI:L/SA:N/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X

Primary rating from NVD · only source for this CVE.

CVSS VectorNVD

CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:P/VC:N/VI:N/VA:N/SC:L/SI:L/SA:N/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X
Attack Vector
Network
Attack Complexity
Low
Privileges Required
Low
User Interaction
P
Scope
X

Lifecycle Timeline

4
Source Code Evidence Fetched
Jun 08, 2026 - 22:30 vuln.today
Analysis Generated
Jun 08, 2026 - 22:30 vuln.today
CVSS changed
Jun 08, 2026 - 20:22 NVD
5.1 (MEDIUM)
CVE Published
Jun 08, 2026 - 19:04 nvd
UNKNOWN (no severity yet)

DescriptionCVE.org

Namespace attributes are not encoded correctly during HTML serialization. This allows bypassing the cross-site scripting prevention mechanism of typo3/html-sanitizer before version 2.3.2.

AnalysisAI

HTML serialization in typo3/html-sanitizer before version 2.3.2 fails to encode namespace attributes (xmlns:*), allowing an authenticated low-privilege attacker to inject unsanitized XSS payloads that execute in victims' browsers. The vulnerability bypasses the library's core XSS prevention purpose: crafted namespace attribute values containing raw HTML (e.g., onerror handlers) survive the sanitizer and render as executable markup. No public exploit has been independently identified at time of analysis, though the vendor-published commit includes a working test case demonstrating the exact bypass payload.

Technical ContextAI

The affected component is the HTML serializer in typo3/html-sanitizer, a PHP library (cpe:2.3:a:typo3:html_sanitizer:*:*:*:*:*:*:*:*) used to sanitize user-supplied HTML before rendering. The root cause (CWE-79: Improper Neutralization of Input During Web Page Generation) lies in the namespaceAttrs() method of src/Serializer/Rules.php, which prior to the fix omitted proper HTML encoding of XML namespace attribute values during serialization. Namespace declarations (xmlns:prefix='...') are part of the XML/HTML5 serialization spec; their values are treated as plain attribute strings. The sanitizer was escaping element attributes but inadvertently skipping the encoding step for namespace nodes, so a value like "><img src=x onerror=alert(document.domain)> would be written back to the DOM unescaped. The fix overrides namespaceAttrs() to call $this->enc() on all namespace node values before emitting them, closing the bypass path.

RemediationAI

Upgrade typo3/html-sanitizer to version 2.3.2 or later; this is the vendor-released patch confirmed by the TYPO3 security advisory at https://typo3.org/security/advisory/typo3-core-sa-2026-006 and the upstream fix commit at https://github.com/TYPO3/html-sanitizer/commit/8b5d0be44ded457ca993ec9ca93d859941c63764. For Composer-based projects, run composer update typo3/html-sanitizer. If an immediate upgrade is not possible, a targeted workaround is to restrict who can submit HTML content that passes through the sanitizer - elevating the effective privilege threshold above PR:L reduces the attacker pool significantly. Disabling XML namespace handling at the application layer (if your use case does not require SVG or MathML namespace embedding) is another compensating control, though this may break legitimate content. There are no known generic WAF signatures that reliably block namespace-based XSS bypasses, so the patch is the only fully effective remediation.

Share

EUVD-2026-35192 vulnerability details – vuln.today

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy