Description
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.
Published: 2026-05-26
Score: 6.1 Medium
EPSS: < 1% Very Low
KEV: No
Impact: n/a
Action: n/a
AI Analysis

Impact

Mistune is a Python Markdown parser. Before version 3.2.1, the HTMLRenderer.heading() method constructs the opening <hN> tag by concatenating the id attribute value directly into the tag without any escaping or sanitisation. Because a double‑quote in the id value ends the attribute, an attacker can inject arbitrary attributes—including event handlers such as onclick, or dangerous src and href values—into the heading element. This flaw makes the application vulnerable to reflected or stored XSS and allows arbitrary client‑side script execution when the rendered Markdown is displayed in a browser. The weakness is identified as CWE‑79.

Affected Systems

The vulnerability affects the Mistune library released by Lepture. Any deployments using Mistune versions older than 3.2.1 that render Markdown to HTML are potentially impacted. Versions 3.2.0 and earlier are the only releases where the described id handling logic exists.

Risk and Exploitability

The CVSS score of 6.1 indicates moderate severity. The EPSS score is not available, and the vulnerability is not listed in CISA’s KEV catalog, suggesting no currently known widespread exploitation but still including it as a security concern. An attacker needs the ability to inject Markdown content that will be rendered by a vulnerable Mistune instance—typically a web application or content management system that directly trusts Markdown input. Execution would occur in viewers’ browsers if they load the page, leading to potential data theft or defacement. The lack of sanitisation makes exploitation straightforward for an application that renders user‑supplied Markdown without additional filtering.

Generated by OpenCVE AI on May 26, 2026 at 22:54 UTC.

Remediation

No vendor fix or workaround currently provided.

OpenCVE Recommended Actions

  • Upgrade Mistune to version 3.2.1 or later, which implements proper escaping for the heading id attribute.
  • Restrict or sanitize user-supplied Markdown before rendering, ensuring that any id values are validated or escaped to prevent attribute injection.
  • Implement a strong Content Security Policy (CSP) on the web application to mitigate the impact of any potential XSS payloads.

Generated by OpenCVE AI on May 26, 2026 at 22:54 UTC.

Tracking

Sign in to view the affected projects.

Advisories
Source ID Title
Github GHSA Github GHSA GHSA-v87v-83h2-53w7 Mistune Heading ID Attribute has Injection XSS
History

Mon, 01 Jun 2026 17:30:00 +0000

Type Values Removed Values Added
Metrics ssvc

{'options': {'Automatable': 'no', 'Exploitation': 'none', 'Technical Impact': 'partial'}, 'version': '2.0.3'}


Thu, 28 May 2026 13:45:00 +0000

Type Values Removed Values Added
First Time appeared Mistune Project
Mistune Project mistune
CPEs cpe:2.3:a:mistune_project:mistune:*:*:*:*:*:*:*:*
Vendors & Products Mistune Project
Mistune Project mistune

Tue, 26 May 2026 23:00:00 +0000

Type Values Removed Values Added
First Time appeared Lepture
Lepture mistune
Vendors & Products Lepture
Lepture mistune

Tue, 26 May 2026 21:15:00 +0000

Type Values Removed Values Added
Description 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.
Title Mistune Heading ID Attribute Injection XSS
Weaknesses CWE-79
References
Metrics cvssV3_1

{'score': 6.1, 'vector': 'CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:L/I:L/A:N'}


Subscriptions

Lepture Mistune
Mistune Project Mistune
cve-icon MITRE

Status: PUBLISHED

Assigner: GitHub_M

Published:

Updated: 2026-06-01T17:09:12.432Z

Reserved: 2026-05-07T21:50:33.546Z

Link: CVE-2026-44897

cve-icon Vulnrichment

Updated: 2026-06-01T17:09:07.878Z

cve-icon NVD

Status : Analyzed

Published: 2026-05-26T21:16:39.657

Modified: 2026-05-28T13:42:42.863

Link: CVE-2026-44897

cve-icon Redhat

No data.

cve-icon OpenCVE Enrichment

Updated: 2026-05-26T23:00:17Z

Weaknesses
  • CWE-79

    Improper Neutralization of Input During Web Page Generation ('Cross-site Scripting')