CVE-2026-67422
HighCVSS 7.5Exploitation Probability (EPSS)
Low risk45th percentile - higher than 45% of all known CVEs
Summary
pymdown-extensions up to version 11.0 contains a vulnerability to catastrophic backtracking in four inline processors (caret, tilde, betterem, magiclink). A single untrusted Markdown line under 50 bytes can cause unbounded CPU usage, enabling a remote attacker to cause denial of service. The issue is fixed in version 11.0.1.
Risk Assessment
Web applications rendering user-supplied Markdown (comments, wikis, issue bodies, live preview) are exposed to DoS attacks, potentially leading to service unavailability.
Recommendation
Update pymdown-extensions to version 11.0.1 or later. If not possible, restrict the length and complexity of input Markdown.
Other vulnerabilities in pymdown-extensions
See all- CVE-2026-61632Medium
PyMdown Extensions is a set of extensions for the Python-Markdown markdown project. In versions up to and including 10.21.3, the b64 extension is vulnerable to a path traversal that discloses arbitrary files: it inlines images referenced by <img src="..."> by joining the src onto the configured base_path with os.path.normpath and opening the result directly, without verifying that the resolved path stays inside base_path. As a result, an src containing ../ sequences or an absolute path reads a file outside base_path as long as it has an allowed image extension (.png, .jpg, .jpeg, .gif, .svg), and the file's contents are then base64-encoded into the rendered output, disclosing them. This issue has been fixed in version 11.0.
- CVE-2026-46338Medium
A vulnerability in PyMdown Extensions (versions 10.0.1 through 10.21.3) allows bypassing the base path restriction in the SnippetPreprocessor.get_snippet_path() function. The string-prefix containment check enables reading files from sibling directories sharing the same base_path prefix, representing a regression of the fix for CVE-2023-32309.
Original NVD description (English source)
pymdown-extensions is a collection of extensions for the Python Markdown library. In versions up to and including 11.0, four inline processors (caret, tilde, betterem, and magiclink) use regular expressions whose content groups can partition a run of delimiter characters in exponentially many ways, causing catastrophic backtracking. As a result, a single untrusted Markdown line under 50 bytes rendered with markdown.markdown() in each extension's default configuration drives the rendering thread into unbounded CPU usage that grows exponentially with input length, enabling an unauthenticated remote attacker who can submit Markdown to cause denial of service. The exposure is concrete for web applications that render user-supplied Markdown (comments, wikis, issue bodies, live preview), including any app using pymdownx.extra which bundles the vulnerable betterem default, as well as hosted docs/CI systems that build untrusted Markdown. The issue has been fixed in version 11.0.1.

