PatchSiren cyber security CVE debrief
CVE-2026-44899 lepture CVE debrief
A cross-site scripting (XSS) vulnerability exists in the Mistune Python Markdown parser prior to version 3.2.1. The Image directive plugin uses a permissive regular expression (`^d+(?:.d*)?`) to validate `:width:` and `:height:` options, accepting any string that begins with digits. When a non-integer value passes this check, `render_block_image()` inserts it unescaped into a `style` attribute. An attacker can inject arbitrary CSS and JavaScript by crafting a width or height value that starts with digits followed by malicious payload, such as `100px; background-image: url('javascript:alert(1)')` or similar style-based injection vectors. The vulnerability requires user interaction (rendering malicious Markdown) and can affect downstream web applications that display parsed content without additional sanitization. The CVSS 3.1 score of 4.7 (Medium) reflects network attack vector, low attack complexity, no required privileges, required user interaction, changed scope, and low confidentiality impact with no integrity or availability impact.
- Vendor
- lepture
- Product
- mistune
- CVSS
- MEDIUM 4.7
- CISA KEV
- Not listed in stored evidence
- Original CVE published
- 2026-05-26
- Original CVE updated
- 2026-05-27
- Advisory published
- 2026-05-26
- Advisory updated
- 2026-05-27
Who should care
Organizations using Mistune to render untrusted Markdown content in web applications; security teams monitoring Python package dependencies; developers implementing Markdown processing pipelines; compliance teams tracking XSS remediation in content management systems
Technical summary
The vulnerability stems from a prefix-only regular expression validation in `mistune/directives/image.py`. The `_num_re` pattern `^d+(?:.d*)?` accepts strings beginning with numeric characters without enforcing complete match or sanitizing trailing content. When `render_block_image()` constructs HTML output, validated values are interpolated directly into `style` attributes without HTML entity encoding or CSS escaping. This permits injection of arbitrary CSS properties and potentially JavaScript execution through style-based vectors. The fix in 3.2.1 likely implements stricter validation or proper escaping of directive option values.
Defensive priority
medium
Recommended defensive actions
- Upgrade Mistune to version 3.2.1 or later to obtain the security fix
- Review applications rendering user-supplied Markdown with Mistune for suspicious image directives containing style-breaking payloads
- Implement Content Security Policy (CSP) headers to mitigate impact of style-based injection vectors
- Consider additional output encoding or HTML sanitization layers for rendered Markdown content in security-sensitive contexts
- Audit logs for unusual image directive parameters containing semicolons, parentheses, or JavaScript protocol handlers in width/height fields
Evidence notes
Vulnerability confirmed through GitHub Security Advisory GHSA-ccfx-mfmx-2fx9 and Mistune release notes. The fix in version 3.2.1 addresses the insufficient input validation. CWE-79 (Improper Neutralization of Input During Web Page Generation) classified as primary weakness. No known exploitation in the wild as of CVE publication date.
Official resources
2026-05-26