CVE-2026-115355High· 7.5▾ TwilightMistune: Path Traversal and XSS in Include directive
▾ Twilight zone — High severity, or a signal on a lesser flaw
impact 41.3 · likelihood 0.1 · exploitation 0
Need a working PoC? Pro members can cast a request and our team develops one — it lands right here.
Exploit-prediction probability, daily snapshots since Oct 23.
Disclosure to exploitation, from the record and what we observed since indexing it.
Disclosed via OSV
0.4%
0.4% → 0.5%
The Include directive in src/mistune/directives/include.py does not validate that the resolved file path stays within the source directory, allowing path traversal via ../ sequences to read arbitrary files.
Additionally, error messages and included file contents are rendered without HTML escaping, leading to XSS even when escape=True.
Affected functions:
block_error() in html.py (line 140)render_html_include() (line 72)The Include plugin must be explicitly enabled via the plugins parameter.
mistune < 3.3.0Upgrade to a patched release:
mistune 3.3.0Connected by shared product, vendor, weakness, or advisory.
GHSA-8cqv-vvq2-6p8cHigh· 7.5Duplicate Advisory: Mistune: Path Traversal and XSS in Include directive
CVE-2026-76098High· 7.5Mistune is a Python Markdown parser with renderers and plugins
CVE-2026-59927Medium· 5.3Mistune is a Python Markdown parser with renderers and plugins. Prior to 3.3.0, the Include directive in src/mistune/directives/include.p…
CVE-2026-59924Medium· 5.9Mistune is a Python Markdown parser with renderers and plugins. Prior to 3.3.0, Include.parse() joins and normalizes user-supplied includ…
CVE-2026-115352High· 7.5Mistune before 3.3.0 Quadratic-Time DoS via Unmatched Brackets in Inline Parser
CVE-2026-115347High· 7.5Mistune before 3.3.0 Quadratic Denial of Service via parse_link_text