Severity by source
CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/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
Sanitizer-bypass XSS: network-reachable, no privileges, but a victim must render the output (UI:R); scope changes to the browser (S:C) with limited C/I and no availability impact.
Primary rating from Vendor (VulnCheck).
CVSS VectorVendor: VulnCheck
CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/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
Lifecycle Timeline
4DescriptionCVE.org
justhtml versions <= 1.11.0 (fixed in 1.12.0) do not sufficiently escape HTML-significant characters (angle brackets) in text nodes when converting a parsed document to Markdown via to_markdown(). While a small set of Markdown metacharacters are escaped, characters such as < and > are preserved, so untrusted input that is safe in to_html() - including entity-decoded text (e.g. <script>) or text from RCDATA/RAWTEXT-parsed elements like <title>, <textarea>, <noscript>, and <plaintext> - can be emitted as raw HTML in the Markdown output, enabling a sanitizer bypass and potential cross-site scripting when that output is rendered.
AnalysisAI
Sanitizer bypass in the justhtml Python library (versions <= 1.11.0) allows attacker-controlled input to survive as raw HTML in the output of to_markdown(), enabling cross-site scripting when that Markdown is later rendered. Although to_html() safely neutralizes the same input, the Markdown serializer escapes only a handful of Markdown metacharacters and leaves angle brackets (< and >) intact, so entity-decoded text (e.g. …
Unlock full vulnerability intelligence
- Risk assessment & exploitation conditions
- Attack chain visualization
- Remediation with exact patch versions
- Threat intelligence from 22 sources
- Personal watchlist & email alerts
Free forever · No credit card required
Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata
Vulnerability AssessmentAI
| Exploitation | Exploitation requires an application that (1) uses justhtml's to_markdown() converter on attacker-influenced HTML and (2) renders the resulting Markdown back into HTML that is served to victims - the vulnerability is inert if the Markdown is never rendered as HTML. … Additional conditions and limiting factors are described in the full assessment. |
| Risk Assessment | The supplied CVSS 4.0 vector (9.3, AV:N/AC:L/AT:N/PR:N/UI:N with VC:H/VI:H/VA:H) rates this Critical, but that scoring appears aggressive for a stored/reflected XSS sanitizer bypass: real impact is confined to the browser context of a victim who renders the Markdown, exploitation realistically requires that downstream rendering (a form of user/system interaction), and availability impact (VA:H) is not well supported by the described behavior. … Full risk analysis with EPSS, KEV, and SSVC signal comparison available after sign-in. |
| Exploit Scenario | An attacker submits content such as <title><img src=x onerror=alert(1)></title> or entity-encoded markup to an application that stores it, parses it with justhtml, and publishes it via to_markdown(); the angle brackets survive unescaped, so when the Markdown is rendered to HTML the injected <img onerror> executes JavaScript in a victim's browser. A proof-of-concept demonstrating the general case (<p><img src=x onerror=alert(1)></p>) is published in the vendor advisory, lowering the bar to reproduce. |
| Remediation | Vendor-released patch: 1.12.0 - upgrade justhtml to 1.12.0 or later (pip install --upgrade justhtml) as the primary fix; see GHSA-3rcm-vjrc-p45j. … Detailed patch versions, workarounds, and compensating controls in full report. |
Recommended ActionAI
Immediately audit all applications and dependencies to identify usage of justhtml versions 1.11.0 or earlier within the next 24 hours. …
Sign in for detailed remediation steps and compensating controls.
Threat intelligence, references, and detailed analysis are available after sign-in.
Uncontrolled recursion in the justhtml Python HTML parsing library (all versions through 1.9.1) allows any remote unauth
Cross-site scripting via HTML sanitization bypass affects justhtml (a Python HTML parsing/sanitization library by EmilSt
Sanitization bypass in justhtml (a Python HTML/Markdown sanitization library) before 1.15.0 lets attacker-controlled inp
Uncontrolled resource consumption in justhtml before 1.18.0 enables denial-of-service conditions through CPU and memory
Cross-site scripting in justhtml 0.9.0-1.21.0 allows an attacker who can control the text content of HTML code or pre el
Cross-site scripting in justhtml before 3.11.0 allows remote unauthenticated attackers to execute arbitrary JavaScript i
Mutation XSS in justhtml (versions ≤1.11.0) allows injection of arbitrary HTML into serialized output when applications
Mutation XSS (mXSS) in justhtml 1.13.0 and earlier enables markup injection bypass against applications using non-defaul
Cross-site scripting in justhtml versions before 1.13.0 allows attackers who control `<pre>` element content to break ou
Sanitization bypass in justhtml (Python HTML sanitization library) before version 1.17.0 enables cross-site scripting in
Same weakness CWE-79 – Cross-site Scripting (XSS)
View allShare
External POC / Exploit Code
Leaving vuln.today
EUVD-2026-64659
GHSA-wf6m-786j-gxrr