p PatchFirst

PatchFirst · Latest vulnerabilities

mistune vulnerabilities

Vulnerabilities published for mistune in the last 30 days: 1. Listed in the KEV catalogue: 0.

RSS ↗
Filter vulnerabilities
Clear filters

Vulnerabilities: 21

  1. CVE-2026-115355

    High · CVSS 8.7EPSS 0.39%Fix available

    Mistune before 3.3.0 Path Traversal and XSS via Include Directive

    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.

    • Update to 3.3.0
    Published Updated
  2. CVE-2026-76098

    High · CVSS 7.5EPSS 0.49%Fix available

    Mistune has Denial of Service — RecursionError via Excessive Emphasis Markers in Markdown

    Mistune is a Python Markdown parser with renderers and plugins. Versions 3.3.0 through 3.3.2 are vulnerable to DoS through deeply nested tokens. HTML rendering creates deeply nested emphasis tokens from consecutive asterisk characters, and recursive rendering in HTMLRenderer.render_token() can exceed Python's recursion limit and raise RecursionError, allowing crafted Markdown to crash a parsing process. This issue is fixed in version 3.3.3

    • Update to 3.3.3
    Published Updated
  3. CVE-2026-59927

    Medium · CVSS 5.3EPSS 0.53%Fix available

    Mistune directives/include: mutual `.. include::` recursion crashes the renderer with `RecursionError`, denial of service via two attacker-controlled markdown files

    Mistune is a Python Markdown parser with renderers and plugins. Prior to 3.3.0, the Include directive in src/mistune/directives/include.py detects only direct self-includes and not indirect cycles, allowing two markdown files that include each other to trigger unbounded recursion, raise RecursionError, and crash the rendering request. This issue is fixed in version 3.3.0.

    • Update to 3.3.0
    Published Updated
  4. CVE-2026-59928

    High · CVSS 7.5EPSS 0.65%Fix available

    Mistune block_parser: quadratic-time parsing on long lists of repeated reference-link definitions

    Mistune is a Python Markdown parser with renderers and plugins. Prior to 3.3.0, a Markdown document containing many repeated or distinct reference-link definitions causes quadratic work in src/mistune/block_parser.py and the ref_links environment dictionary handling, allowing denial of service through CPU exhaustion. This issue is fixed in version 3.3.0.

    • Update to 3.3.0
    Published Updated
  5. CVE-2026-59924

    Medium · CVSS 5.9EPSS 0.46%Fix available

    Mistune: Arbitrary File Read via Include directive path traversal

    Mistune is a Python Markdown parser with renderers and plugins. Prior to 3.3.0, Include.parse() joins and normalizes user-supplied include paths without verifying that the result remains within the intended markdown directory, allowing crafted include paths to access files outside that directory when markdown files are processed using md.read(). This issue is fixed in version 3.3.0.

    • Update to 3.3.0
    Published Updated
  6. CVE-2026-59929

    Medium · CVSS 6.1EPSS 0.34%Fix available

    Mistune renderers/html.safe_url: HARMFUL_PROTOCOLS list misses legacy and chained schemes that historically chain to `javascript:` execution

    Mistune is a Python Markdown parser with renderers and plugins. Prior to 3.3.0, the safe_url filter in src/mistune/renderers/html.py blocks only javascript:, vbscript:, file:, and data: schemes, allowing legacy or chained schemes such as feed:, view-source:, jar:, livescript:, mocha:, ms-its:, mk:, and res: to reach rendered href and src attributes and potentially execute script in affected user agents. This issue is fixed in version 3.3.0.

    • Update to 3.3.0
    Published Updated
  7. CVE-2026-59925

    High · CVSS 7.5EPSS 0.64%Fix available

    inline_parser: quadratic-time parsing on long runs of `**x**` and `***x***` emphasis pairs

    Mistune is a Python Markdown parser with renderers and plugins. Prior to 3.3.0, long sequences of well-formed double-asterisk or triple-asterisk emphasis pairs around a character cause quadratic work in src/mistune/inline_parser.py because the parser scans forward for matching close markers from every potential opening run, allowing denial of service in default Mistune parsing. This issue is fixed in version 3.3.0.

    • Update to 3.3.0
    Published Updated
  8. CVE-2026-59926

    Medium · CVSS 5.3EPSS 0.33%Fix available

    Mistune: XSS via unescaped class option in Admonition directive

    Mistune is a Python Markdown parser with renderers and plugins. Prior to 3.2.1, render_admonition() in src/mistune/directives/admonition.py concatenates the Admonition directive :class: option into the HTML class attribute without escaping, allowing attribute injection and cross-site scripting even when HTMLRenderer escape mode is enabled. This issue is fixed in version 3.2.1.

    • Update to 3.3.0
    Published Updated
  9. CVE-2026-59923

    Medium · CVSS 6.1EPSS 0.35%Fix available

    Mistune: XSS via percent-encoded javascript URI bypass in safe_url()

    Mistune is a Python Markdown parser with renderers and plugins. Prior to 3.3.0, HTMLRenderer.safe_url() does not block percent-encoded javascript URIs, allowing attacker-supplied Markdown links or images to bypass URL protections and execute script in rendered HTML. This issue is fixed in version 3.3.0.

    • Update to 3.3.0
    Published Updated
  10. CVE-2026-59930

    Medium · CVSS 4.3EPSS 0.19%Fix available

    Mistune toc / TableOfContents directive: heading IDs use predictable `toc_N` numbering with no slugification, allowing collision with attacker-controlled `id="toc_N"` content

    Mistune is a Python Markdown parser with renderers and plugins. Prior to 3.3.0, the toc plugin and TableOfContents directive generate heading IDs as predictable toc_N values without slugifying the heading text, allowing attacker-controlled id="toc_N" content to collide with generated anchors and redirect same-page navigation, CSS selectors, or JavaScript handlers. This issue is fixed in version 3.3.0.

    • Update to 3.3.0
    Published Updated
  11. CVE-2026-59922

    High · CVSS 7.5EPSS 0.64%Fix available

    Mistune plugins/formatting: quadratic-time parsing on long runs of `~~x~~`, `==x==`, and `^^x^^` markers (strikethrough / mark / insert)

    Mistune is a Python Markdown parser with renderers and plugins. Prior to 3.3.0, a run of closed tilde, equals-sign, or caret marker pairs around a character causes quadratic work in src/mistune/plugins/formatting.py when the strikethrough, mark, or insert plugin scans for matching markers from each possible start position, allowing denial of service through CPU exhaustion. This issue is fixed in version 3.3.0.

    • Update to 3.3.0
    Published Updated
  12. CVE-2026-49851

    High · CVSS 8.7EPSS 0.63%Fix available

    Mistune: Potential DoS via quadratic-time parsing in parse_link_text

    Mistune is a Python Markdown parser with renderers and plugins. Prior to 3.3.0, Mistune is vulnerable to a CPU exhaustion DoS due to superlinear (approximately O(n²)) behavior in parse_link_text. When parsing Markdown containing many consecutive [ characters, parse_link_text repeatedly scans the input using a regex search inside a loop. Each iteration re-scans a large portion of the remaining string, resulting in quadratic-time behavior. An attacker-controlled Markdown input can therefore trigger excessive CPU usage with a very small payload. This vulnerability is fixed in 3.3.0.

    • Update to 3.3.0
    Published Updated
  13. CVE-2026-44898

    Medium · CVSS 6.1EPSS 0.27%Fix available

    Mistune TOC Anchor Injection XSS

    Mistune is a Python Markdown parser with renderers and plugins. Prior to 3.2.1, render_toc_ul() builds a <ul> table-of-contents tree from a list of (level, id, text) tuples. Both the id value (used as href="#<id>") and the text value (used as the visible link label) are inserted into <a> tags via a plain Python format string — with no HTML escaping applied to either value. When heading IDs are derived from user-supplied heading text (the standard use-case for readable slug anchors), an attacker can craft a heading whose text breaks out of the href="#..." attribute context, injecting arbitrary HTML tags including <script> blocks directly into

    • Update to 3.2.1
    Published Updated
  14. CVE-2026-44897

    Medium · CVSS 6.1EPSS 0.27%Fix available

    Mistune Heading ID Attribute Injection XSS

    Mistune is a Python Markdown parser with renderers and plugins. Prior to 3.2.1, HTMLRenderer.heading() builds the opening <hN> tag by string-concatenating the id attribute value directly into the HTML — with no call to escape(), safe_entity(), or any other sanitisation function. A double-quote character " in the id value terminates the attribute, allowing an attacker to inject arbitrary additional attributes (event handlers, src=, href=, etc.) into the heading element. This vulnerability is fixed in 3.2.1.

    • Update to 3.2.1
    Published Updated
  15. CVE-2026-44708

    Medium · CVSS 6.1EPSS 0.27%Fix available

    Mistune Math Plugin XSS Escape Bypass

    Mistune is a Python Markdown parser with renderers and plugins. Prior to 3.2.1, the mistune math plugin renders inline math ($...$) and block math ($$...$$) by concatenating the raw user-supplied content directly into the HTML output without any HTML escaping. This occurs even when the parser is explicitly created with escape=True, which is supposed to guarantee that all user-controlled text is sanitised before reaching the DOM. This vulnerability is fixed in 3.2.1.

    • Update to 3.2.1
    Published Updated
  16. CVE-2026-44899

    Medium · CVSS 4.7EPSS 0.27%Fix available

    Mistune Image Directive CSS Injection Vulnerability

    Mistune is a Python Markdown parser with renderers and plugins. Prior to 3.2.1, the Image directive plugin validates the :width: and :height: options with a regex compiled as _num_re = re.compile(r"^\d+(?:\.\d*)?"). When the validated value is not a plain integer, render_block_image() inserts it directly into a style="width:...;" or style="height:...;" attribute. Because the value was accepted by the prefix-only regex, any CSS after the leading digits reaches the style= attribute verbatim and without escaping. This vulnerability is fixed in 3.2.1.

    • Update to 3.2.1
    Published Updated
  17. CVE-2026-44896

    Medium · CVSS 5.3EPSS 0.27%Fix available

    Mistune: XSS via unescaped figclass/figwidth in Figure directive

    Mistune is a Python Markdown parser with renderers and plugins. In 3.2.0 and earlier, in src/mistune/directives/image.py, the render_figure() function concatenates figclass and figwidth options directly into HTML attributes without escaping. This allows attribute injection and XSS even when HTMLRenderer(escape=True) is used, because these values bypass the inline renderer. Version 3.2.1 contains a patch.

    • Update to 3.2.1
    Published Updated
  18. CVE-2026-33079

    High · CVSS 8.7EPSS 0.7%Fix available

    Mistune ReDoS in LINK_TITLE_RE allows denial of service with crafted Markdown titles

    In versions 3.0.0a1 through 3.2.0 of Mistune, there is a ReDoS (Regular Expression Denial of Service) vulnerability in `LINK_TITLE_RE` that allows an attacker who can supply Markdown for parsing to cause denial of service. The regular expression used for parsing link titles contains overlapping alternatives that can trigger catastrophic backtracking. In both the double-quoted and single-quoted branches, a backslash followed by punctuation can be matched either as an escaped punctuation sequence or as two ordinary characters, creating an ambiguous pattern inside a repeated group. If an attacker supplies Markdown containing repeated ! sequences

    • Update to 3.2.1
    Published Updated

Check your server

Check your installed stack and versions against the current vulnerability feeds.

Check your server →