CVE-2026-111759: markdown-it: Quadratic complexity in smartquotes with unmatched closing quotes
markdown-it is a Markdown parser. Prior to 14.3.2 and 15.0.2, smartquotes is affected: many opening quotes of one type followed by unmatched closing quotes of the other type cause the smartquotes rule to repeatedly scan the entire opener stack, resulting in quadratic processing time. The root cause is each mismatched quote closer repeatedly scans the opener stack for a compatible quote type. The attack mechanism is quadratic rescanning of the quote opener stack. The affected identifiers are smartquotes and typographer. The trigger conditions are attacker-controlled Markdown with many openers of one quote type and unmatched closers of the other type and typographer mode is enabled. The impact is denial of service through excessive parsing time. The vulnerable path requires typographer mode; disabling typographer or the smartquotes rule prevents the affected processing. This issue is fixed in versions 14.3.2 and 15.0.2.
Other sources
markdown-it is a Markdown parser. Prior to 14.3.2 and 15.0.2, when typographer: true is enabled, specially crafted Markdown can cause quadratic processing time in the smartquotes rule, potentially leading to denial of service in applications processing untrusted input. Many opening double quotes followed by unmatched closing single quotes cause repeated scans of the entire opener stack. The same issue occurs with the quote types reversed. The default configuration (typographer: false) is not affected, but this option is enabled with high probability. This issue is fixed in versions 14.3.2 and 15.0.2.
— NVD
Affected Software
Remediation
Recommended actions to resolve this vulnerability, in priority order.
- Upgrade
Upgrade
markdown-itto a version that resolves this vulnerability.Fixed in 14.3.2 - Upgrade
Upgrade
markdown-itto a version that resolves this vulnerability.Fixed in 15.0.2 - Configuration
Disable typographer mode; alternatively disable the smartquotes rule to prevent the affected processing.
markdown-it typographer = false
Event History
Frequently Asked Questions
Which deployments are exposed to this denial-of-service condition?
Deployments using markdown-it versions before 14.3.2 or 15.0.2 are exposed only when typographer mode is enabled. The affected processing is in the smartquotes rule.
What input is required to trigger the excessive parsing time?
An attacker needs to supply Markdown containing many opening quotes of one quote type followed by unmatched closing quotes of the other type. No privileges or user interaction are required according to the supplied severity vector.
What can be done if an immediate upgrade is not possible?
Disable typographer mode or disable the smartquotes rule. Either change prevents the vulnerable processing path.
Which versions contain the fix?
The issue is fixed in markdown-it 14.3.2 and 15.0.2.