Impact
A mutual :include: directive can create an indirect cycle between two Markdown files that reference each other. Mistune, before version 3.3.0, does not detect such cycles, leading the renderer to recurse indefinitely until the interpreter’s maximum recursion depth is reached, raising a RecursionError and terminating the rendering process. The flaw stems from inadequate cycle detection (CWE‑674), uncontrolled recursion (CWE‑755), and a possible infinite loop condition (CWE‑835).
Affected Systems
The vulnerability is present in the Mistune Python Markdown parser produced by Lepture. All releases older than 3.3.0 are susceptible; version 3.3.0 and later contain a fix that prevents recursive inclusions.
Risk and Exploitability
The CVSS score of 5.3 represents a moderate severity denial‑of‑service risk, while the EPSS score of <1% indicates a very low but non‑zero chance of exploitation in the wild. The vulnerability is not listed in the CISA KEV catalog. An attacker can exercise the flaw by supplying two Markdown files under their control, each including the other. This forces the application to continue recursive inclusion until the Python interpreter’s call stack limit is exceeded, causing the request to crash. No remote code execution or privilege escalation is possible through this vector.
OpenCVE Enrichment
Github GHSA