CVE-2026-5388: justhtml before 1.15.0 Multiple Security Issues
justhtml before 1.15.0 contains multiple security issues in URL sanitization helpers (clean_url_value/clean_url_in_js_string), HTML serialization, Markdown passthrough (html_passthrough=True), and several custom sanitization-policy edge cases. Depending on configuration, an attacker can bypass sanitization to inject active HTML and JavaScript — for example via encoded javascript: URLs, backslash-based relative URLs resolved as remote hosts, markup-breaking programmatic element/attribute names or HTML comments, raw </textarea> reintroduction through Markdown passthrough, or preserved <style>/<meta http-equiv=refresh>/<base href> tags in custom policies. Most custom-policy issues do not affect the default sanitize=True configuration; they primarily affect helper APIs, programmatic DOM construction, html_passthrough=True, and custom policies/transform pipelines.
Security readout for executives and security teams
Plain-English summary
justhtml versions before 1.15.0 may allow attacker-controlled content to escape sanitization and execute active HTML or JavaScript. Successful abuse could compromise information displayed or handled by an affected application. Risk depends heavily on how the library is configured; several issues concern helper APIs, Markdown passthrough, programmatic DOM construction, and custom sanitization policies rather than the default configuration.
Executive priority
Prioritize immediate inventory and rapid upgrading for internet-facing or multi-tenant systems that sanitize untrusted content. Escalate applications using Markdown passthrough, custom policies, helper APIs, or programmatic DOM construction. Default-only deployments may have narrower exposure, but the critical rating and potential script execution justify prompt verification rather than assuming safety.
Technical view
The flaws affect URL-cleaning helpers, HTML serialization, Markdown passthrough, and custom-policy edge cases. Bypasses include encoded script-scheme URLs, backslash URL handling, markup-breaking names or comments, textarea termination, and preserved style, refresh, or base elements. Most custom-policy cases reportedly do not affect the default sanitize=True configuration.
Likely exposure
Exposure is most likely where applications process untrusted content with justhtml before 1.15.0, particularly through URL helper APIs, html_passthrough=True, programmatic element construction, custom policies, or transformation pipelines. Deployments using only the default sanitize=True behavior may avoid most custom-policy issues, but their exact exposure still requires configuration and data-flow review.
Exploitation context
The supplied record reports remotely reachable, low-complexity impact without required privileges or user interaction and assigns CVSS 9.8. However, it does not establish active exploitation, and the CVE is not listed as KEV in the supplied bundle. Treat practical exploitability as configuration-dependent and validate whether attacker-controlled input reaches affected paths.
Researcher notes
The advisory groups multiple behaviors under one CVE, so reachability should be assessed per API and configuration. Preserve context when testing: URL parsing, serialization, Markdown conversion, browser interpretation, and custom transforms may interact. The supplied evidence does not quantify affected deployments or confirm exploitation in the wild. Avoid generalizing custom-policy findings to default sanitize=True without reproducing the relevant data flow.
Mitigation direction
Upgrade justhtml to version 1.15.0 or later.
Inventory applications and dependencies using justhtml versions before 1.15.0.
Disable html_passthrough=True where raw HTML preservation is unnecessary.
Review custom policies, transform pipelines, URL helpers, and programmatic DOM construction.
Follow the vendor advisory for any additional configuration-specific guidance.
Validation and detection
Confirm the deployed and transitive justhtml versions in every application environment.
Trace untrusted input into sanitization, Markdown, URL-cleaning, serialization, and transformation paths.
Identify uses of html_passthrough=True and non-default sanitization policies.
Run defensive regression tests covering the bypass classes described by the vendor.
Verify sanitized output cannot introduce active HTML or JavaScript in its final rendering context.
Generated from the cited source records. This long-tail analysis has not been individually reviewed by a named human.
Potential ATT&CK relevance
Conservative CVE-to-ATT&CK context
These mappings and lookup hints may be relevant to the vulnerability behavior, CWE, affected product, or exposure path. Glexia-inferred context is not an official MITRE, ATT&CK, CWE, or CVE Program mapping.
ATT&CK lookup starting points
Use these exact CWE pages and searches to review the Glexia ATT&CK library from this CVE's weakness and description context.
cwe · low confidence lookup
CWE-20: Exact CWE lookup
Use the exact CWE identifier as the starting point before reviewing related ATT&CK behavior. Open the exact CWE lookup page first, then review the ATT&CK searches from that MITRE weakness context. This is a Glexia lookup hint, not an official ATT&CK mapping.
These fields come from the CVE record and ADP containers, not from Glexia's Take. They preserve time-varying source decisions such as CISA SSVC, KEV status, CVSS metrics, and provider references.
2CVSS vectors
3Timeline events
1ADP providers
3Source links
SSVC decision data
CISA-ADPCISA Coordinator
Timestamp
Version
2.0.3
Exploitation: noneAutomatable: yesTechnical Impact: total
CVSS vector scores
2 official scores
We collect every scored CVSS vector available in the official CNA and ADP containers. When more than one version is present, the table keeps the source vectors side by side instead of collapsing them into the highest score.