Summary
A parser-differential / mutation XSS issue was found in justhtml when using a custom sanitization policy that preserves foreign namespaces such as SVG or MathML.
Under these custom settings, specially crafted input could sanitize into HTML that looked safe at first, but became unsafe when parsed again by a browser or another HTML parser.
Impact
This issue does not affect the default safe configuration.
You may be affected if you use a custom SanitizationPolicy with settings like:
drop_foreign_namespaces=False
- allowlisted foreign elements such as MathML or SVG
- allowlisted raw-text containers such as
<style>
In that case, an attacker could inject markup that survives sanitization and turns into active HTML after re-parsing.
Affected versions
Fixed version
Workarounds
Until you upgrade:
- keep
drop_foreign_namespaces=True
- avoid allowlisting foreign namespaces for untrusted input
- avoid allowlisting raw-text containers such as
<style> in custom policies
Notes
The default JustHTML(..., sanitize=True) behavior was not found to be vulnerable in this issue.
Credit
Discovered by JustHTML author during a LLM-based security review of justhtml.
References
Summary
A parser-differential / mutation XSS issue was found in
justhtmlwhen using a custom sanitization policy that preserves foreign namespaces such as SVG or MathML.Under these custom settings, specially crafted input could sanitize into HTML that looked safe at first, but became unsafe when parsed again by a browser or another HTML parser.
Impact
This issue does not affect the default safe configuration.
You may be affected if you use a custom
SanitizationPolicywith settings like:drop_foreign_namespaces=False<style>In that case, an attacker could inject markup that survives sanitization and turns into active HTML after re-parsing.
Affected versions
justhtml<= 1.13.0Fixed version
1.14.0Workarounds
Until you upgrade:
drop_foreign_namespaces=True<style>in custom policiesNotes
The default
JustHTML(..., sanitize=True)behavior was not found to be vulnerable in this issue.Credit
Discovered by JustHTML author during a LLM-based security review of
justhtml.References