CVE-2026-44899: lepture Mistune CSS injection in Image directive plugin

CVE-2026-44899 · Severity: medium · CVSS 4.7 · Published 2026-05-26

Mistune is a Python library used to convert Markdown text into HTML. A vulnerability in its image processing plugin allows an attacker to inject malicious CSS code into a web page. This could be used to create deceptive overlays, such as fake login forms or phishing screens, that cover the legitimate content of a website.

Technologies: mistune (PyPI). Vendors: PyPI.

Quick answers

Is CVE-2026-44899 exploited in the wild?
No. Junglewise Threat Intelligence has no report of CVE-2026-44899 being exploited in the wild.
How severe is CVE-2026-44899?
Medium severity, with a CVSS score of 4.7, published 26 May 2026.
Which products and versions are affected?
mistune (PyPI) = 3.2.0, ECOSYSTEM:introduced=0,fixed=3.2.1, ECOSYSTEM:introduced=3.2.0,fixed=3.2.1.
Is there a fix for CVE-2026-44899?
Yes. mistune (PyPI): upgrade to 3.2.1 or later. Junglewise finds every place you run it, drafts the upgrade and applies it once you approve.
How is CVE-2026-44899 attacked?
It is attacked over the network, in a software library.
Am I affected by CVE-2026-44899?
Check whether you run mistune (PyPI) at an affected version. Junglewise does that check for you around the clock: connect your code, cloud and domains, and it matches new vulnerabilities like this one against what you actually run and tells you when one reaches you.

How to fix

  • mistune (PyPI): upgrade to 3.2.1 or later
    pip install "mistune>=3.2.1"

Technical details

The Image directive plugin in Mistune uses a regular expression (`_num_re = re.compile(r"^\d+(?:\.\d*)?")`) that lacks an end-of-string anchor ($). Because validation is performed using `re.match()`, it only checks if the input starts with digits. If the input is not a plain integer (e.g., containing CSS units or malicious payloads), `render_block_image()` inserts the value directly into a `style` attribute without escaping. An attacker can provide a crafted `:width:` or `:height:` value containing a chain of CSS properties (e.g., `position:fixed; z-index:9999`). This allows for full-page UI redressing, phishing overlays, or other CSS-based attacks. The issue is fixed in version 3.2.1 by using a stricter regex.

Affected products

  • lepture mistune < 3.2.1

Identifiers

  • CVE-2026-44899
  • GHSA-ccfx-mfmx-2fx9
  • PYSEC-2026-2209

Timeline

  • 2026-05-03: patched: Version 3.2.1 released on GitHub.
  • 2026-05-12: advisory: GitHub Security Advisory GHSA-ccfx-mfmx-2fx9 published.
  • 2026-05-26: disclosed: CVE-2026-44899 published to NVD.

References

This page as Markdown. Free to reuse under CC BY 4.0 with a link back.