Mistune: Path traversal and cross-site scripting in Include directive
Summary
Mistune is a Python Markdown parser used as a library inside applications. Before version 3.3.0, the Include directive does not restrict file paths, so an attacker can use ../ sequences to read arbitrary files. Error messages and included file contents are also not HTML-escaped, which allows cross-site scripting even when escape=True is set. The Include plugin must be explicitly enabled, and the risk is highest where untrusted users can submit Markdown.
Affected
- mistune Python package, all versions before 3.3.0
- Relevant only when the Include plugin is enabled
Fixed in
- Upgrade to mistune 3.3.0 or later
- Regression note (third-party report): versions 3.3.0 to 3.3.3 may drop GFM table delimiter-row validation; 3.3.4 or later is preferred, test before upgrading
Workaround
- Disable the Include plugin until the update is applied
- Do not render untrusted Markdown while the Include plugin is enabled
- Run the rendering process with read access only to the files it needs
Exploitation
- Not listed in CISA KEV; no source reports exploitation in the wild
- No public proof of concept found
- One database rates exploitation as easy and remotely launchable (not confirmed by the maintainer)
Our recommendation
- Check applications and container images, including transitive dependencies (for example Jupyter/nbconvert), for mistune versions below 3.3.0
- Update to 3.3.4 or later and test Markdown rendering afterwards
- If upgrading is not immediately possible, disable the Include plugin
- Review whether untrusted users can submit Markdown to your web applications
- Monitor for related advisories such as CVE-2026-115350 and CVE-2026-115353, which are fixed in the same release
Public exploits
PoC-in-GitHub, Metasploit and Exploit-DB list nothing for this CVE.
Research sources
- GitHub Security Advisory GHSA-h7ww-273w-6cm8 github.com
- VulnCheck Advisory: Mistune before 3.3.0 Path Traversal and XSS via Include Directive www.vulncheck.com
- Ubuntu Security: CVE-2026-115355 ubuntu.com
- GitLab Advisory Database: CVE-2026-115355 advisories.gitlab.com
- OSV: GHSA-h7ww-273w-6cm8 osv.dev
- VulDB: CVE-2026-115355 entry vuldb.com
- OSV: PYSEC-2026-2215 osv.dev
- Airut PR 661 (regression report) github.com
Researched and written up in English and German by an AI (Claude by Anthropic) based on NVD, CISA, EPSS and the sources listed. The vendor information is authoritative. Researched on 1 Nov 2026, 00:40.
Original description (NVD)
Mistune before 3.3.0 contains a path traversal vulnerability in the Include directive that allows attackers to read arbitrary files by supplying ../ sequences in include paths. Attackers can also inject HTML through unescaped error messages and included file contents to perform cross-site scripting even when escape=True is set.
Sources
The tracker combines official, freely usable data sources – updated continuously:
- NVD (NIST) – CVEs, rating (CVSS), affected products
- CISA KEV – vulnerabilities confirmed by CISA as actively exploited
- CISA Vulnrichment – CISA assessment (SSVC) in the official CVE record
- FIRST EPSS – probability of exploitation
- Microsoft MSRC – Patch Tuesday: vulnerabilities, severity, updates
- PoC-in-GitHub – public proof-of-concept repositories
- Metasploit (Rapid7) – modules of the Metasploit Framework
- Exploit-DB (OffSec) – archive of public exploits (links only)
- Patch days: official vendor pages (linked per vendor) (Vendor patch days)
This product uses data from the NVD API but is not endorsed or certified by the NVD. EPSS data © FIRST.org.
Affected? We can help.
We check whether your systems are affected, install updates and close the gap – continuously with the System Health Checker if you wish.
