---
id: CVE-2026-59926
aliases:
  - PYSEC-2026-2214
  - GHSA-g97x-gvcm-x72h
title: >-
  Mistune is a Python Markdown parser with renderers and plugins. Prior to
  3.2.1, render_admonition() in src/mistune/directives/admonition.…
summary: >-
  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 escapi…
severity: medium
cvss: 6.1
cvssVector: 'CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:L/I:L/A:N'
vendor: mistune
product: mistune
ecosystem: pip
affected:
  - mistune < 3.3.0
patched:
  - mistune 3.3.0
published: '2026-07-08'
updated: '2026-07-13'
source: OSV
sourceUrl: 'https://osv.dev/vulnerability/PYSEC-2026-2214'
references:
  - url: 'https://github.com/lepture/mistune/releases/tag/v3.2.1'
  - url: 'https://github.com/lepture/mistune/security/advisories/GHSA-g97x-gvcm-x72h'
  - url: >-
      https://github.com/lepture/mistune/commit/a3cb6e5655308797e8be021d6c7b5bab13cbace2
tags:
  - osv
  - pip
epss: 0.00327
epssPercentile: 0.23127
ingestedAt: '2026-07-13T18:58:08.182Z'
---

## Overview

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.

## Affected packages

- `mistune < 3.3.0`

## Remediation

Upgrade to a patched release:

- `mistune 3.3.0`
