GHSA-h7ww-273w-6cm8High

Mistune: Path Traversal and XSS in Include directive

Published
October 23, 2026
Last Modified
October 23, 2026

🔗 CVE IDs covered (1)

📋 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.

🎯 Affected products1

  • pip/mistune:<= 3.2.0

🔗 References (6)