lepture/mistune · Security
Mistune: Path Traversal and XSS in Include directive
- GHSA ID
- GHSA-h7ww-273w-6cm8
- CVE ID
- CVE-2026-115355
- Severity
- high
- Published
- Updated
Description
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:
- Path resolution (lines 27-31)
block_error()in html.py (line 140)render_html_include()(line 72)
The Include plugin must be explicitly enabled via the plugins parameter.
CWEs
- CWE-22 · Improper Limitation of a Pathname to a Restricted Directory ('Path Traversal')
References
- https://github.com/lepture/mistune/security/advisories/GHSA-h7ww-273w-6cm8 ↗
- https://nvd.nist.gov/vuln/detail/CVE-2026-115355 ↗
- https://github.com/lepture/mistune/commit/1bef343ade163fc3bb95572b15be720084cdb993 ↗
- https://github.com/lepture/mistune/releases/tag/v3.3.0 ↗
- https://www.vulncheck.com/advisories/mistune-before-3.3.0-path-traversal-and-xss-via-include-directive ↗
- https://github.com/advisories/GHSA-h7ww-273w-6cm8 ↗