---
id: CVE-2026-59924
aliases:
  - PYSEC-2026-2212
  - GHSA-r4rv-85jg-w4mf
title: >-
  Mistune is a Python Markdown parser with renderers and plugins. Prior to
  3.3.0, Include.parse() joins and normalizes user-supplied includ…
summary: >-
  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 c…
severity: medium
cvss: 5.9
cvssVector: 'CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:N/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-2212'
references:
  - url: 'https://github.com/lepture/mistune/releases/tag/v3.3.0'
  - url: >-
      https://github.com/lepture/mistune/commit/1bef343ade163fc3bb95572b15be720084cdb993
  - url: 'https://github.com/lepture/mistune/security/advisories/GHSA-r4rv-85jg-w4mf'
tags:
  - osv
  - pip
epss: 0.00462
epssPercentile: 0.37448
ingestedAt: '2026-07-13T18:58:08.145Z'
---

## Overview

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.

## Affected packages

- `mistune < 3.3.0`

## Remediation

Upgrade to a patched release:

- `mistune 3.3.0`
