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, 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.
Attack profile
How easy it is to exploit
- Attack vector
- Network
- Complexity
- Low
- Privileges needed
- None
- User interaction
- None
What an attacker can affect
- Confidentiality
- None
- Integrity
- None
- Availability
- High
Exploit likelihood
What each source reports
CVE List Score used
7.5
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, 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.
- Record
CVE-2026-111759- CVSS 3.1
- 7.5 High
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H - Weakness
- CWE-400, CWE-407
- Updated
- 2026-11-02
EUVDEUVD-2026-104538
7.5
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.
- Record
EUVD-2026-104538- CVSS 3.1
- 7.5 High
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H - Updated
- 2026-11-02
GitHub AdvisoriesGHSA-r7fv-28h4-cvq7
7.5
markdown-it: Quadratic complexity in smartquotes with unmatched closing quotes
Impact
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.
Reproduction
import MarkdownIt from 'markdown-it'
import { performance } from 'node:perf_hooks'
const md = new MarkdownIt({ typographer: true })
for (const k of [2000, 4000, 8000, 16000, 32000]) {
const input = '"a '.repeat(k) + "b' ".repeat(k)
const start = performance.now()
md.render(input)
console.log(input.length, (performance.now() - start).toFixed(1), 'ms')
}
Result:
|input size|time| |-|-| |12000|18ms| |24000|47ms| |48000|115ms| |96000|428ms| |192000|1586ms|
Patches
Fixed in 15.0.2 and 14.3.2.
Workarounds
Disable typography with typographer: false, or disable only the smartquotes rule:
md.disable('smartquotes')
- Record
GHSA-r7fv-28h4-cvq7- CVSS 3.1
- 7.5 High
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H - Weakness
- CWE-400, CWE-407
- Updated
- 2026-11-02
NVD
7.5
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.
- Record
CVE-2026-111759- CVSS 3.1
- 7.5 High
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H - Weakness
- CWE-400, CWE-407
- Updated
- 2026-11-02
OSV
7.5
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, 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.
- Record
CVE-2026-111759- CVSS 3.1
- 7.5 High
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H - Weakness
- CWE-400, CWE-407
- Updated
- 2026-11-02
OSVDEBIAN-CVE-2026-111759
7.5
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.
- Record
DEBIAN-CVE-2026-111759- CVSS 3.1
- 7.5 High
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H - Updated
- 2026-11-02
Show 14 moreShow less
OSVGHSA-r7fv-28h4-cvq7
7.5
markdown-it: Quadratic complexity in smartquotes with unmatched closing quotes
Impact
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.
Reproduction
import MarkdownIt from 'markdown-it'
import { performance } from 'node:perf_hooks'
const md = new MarkdownIt({ typographer: true })
for (const k of [2000, 4000, 8000, 16000, 32000]) {
const input = '"a '.repeat(k) + "b' ".repeat(k)
const start = performance.now()
md.render(input)
console.log(input.length, (performance.now() - start).toFixed(1), 'ms')
}
Result:
|input size|time| |-|-| |12000|18ms| |24000|47ms| |48000|115ms| |96000|428ms| |192000|1586ms|
Patches
Fixed in 15.0.2 and 14.3.2.
Workarounds
Disable typography with typographer: false, or disable only the smartquotes rule:
md.disable('smartquotes')
- Record
GHSA-r7fv-28h4-cvq7- CVSS 3.1
- 7.5 High
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H - Weakness
- CWE-400, CWE-407
- Updated
- 2026-11-02
OSVUBUNTU-CVE-2026-111759
7.5
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.
- Record
UBUNTU-CVE-2026-111759- CVSS 3.1
- 7.5 High
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H - Updated
- 2026-11-02
OSVCLSA-2026-1792518269 No score
TuxCare security update for markdown-it (1 CVE)
TuxCare rebuilt markdown-it to address 1 CVE. Fixed in 14.3.1-tuxcare.1.
- Record
CLSA-2026-1792518269- Updated
- 2026-11-02
OSVCLSA-2026-1792523617 No score
TuxCare security update for markdown-it (1 CVE)
TuxCare rebuilt markdown-it to address 1 CVE. Fixed in 14.3.0-tuxcare.2.
- Record
CLSA-2026-1792523617- Updated
- 2026-11-02
OSVCLSA-2026-1792575285 No score
TuxCare security update for markdown-it (1 CVE)
TuxCare rebuilt markdown-it to address 1 CVE. Fixed in 13.0.2-tuxcare.4.
- Record
CLSA-2026-1792575285- Updated
- 2026-11-02
OSVCLSA-2026-1792587416 No score
TuxCare security update for markdown-it (1 CVE)
TuxCare rebuilt markdown-it to address 1 CVE. Fixed in 12.3.2-tuxcare.2.
- Record
CLSA-2026-1792587416- Updated
- 2026-11-02
OSVCLSA-2026-1792596594 No score
TuxCare security update for markdown-it (1 CVE)
TuxCare rebuilt markdown-it to address 1 CVE. Fixed in 12.3.0-tuxcare.3.
- Record
CLSA-2026-1792596594- Updated
- 2026-11-02
OSVCLSA-2026-1793101322 No score
TuxCare security update for markdown-it (2 CVEs)
TuxCare rebuilt markdown-it to address 2 CVEs. Fixed in 4.0.3-tuxcare.4.
- Record
CLSA-2026-1793101322- Updated
- 2026-11-02
OSVCLSA-2026-1793102413 No score
TuxCare security update for markdown-it (1 CVE)
TuxCare rebuilt markdown-it to address 1 CVE. Fixed in 4.4.0-tuxcare.6.
- Record
CLSA-2026-1793102413- Updated
- 2026-11-02
OSVCLSA-2026-1793874791 No score
TuxCare security update for markdown-it (2 CVEs)
TuxCare rebuilt markdown-it to address 2 CVEs. Fixed in 8.4.2-tuxcare.4.
- Record
CLSA-2026-1793874791- Updated
- 2026-11-05
OSVCLSA-2026-1793874926 No score
TuxCare security update for markdown-it (2 CVEs)
TuxCare rebuilt markdown-it to address 2 CVEs. Fixed in 4.3.0-tuxcare.7.
- Record
CLSA-2026-1793874926- Updated
- 2026-11-05
OSVCLSA-2026-1794058822 No score
TuxCare security update for markdown-it (4 CVEs)
TuxCare rebuilt markdown-it to address 4 CVEs. Fixed in 14.2.0-tuxcare.1.
- Record
CLSA-2026-1794058822- Updated
- 2026-11-07
OSVCLSA-2026-1794059936 No score
TuxCare security update for markdown-it (5 CVEs)
TuxCare rebuilt markdown-it to address 5 CVEs. Fixed in 10.0.0-tuxcare.1.
- Record
CLSA-2026-1794059936- Updated
- 2026-11-07
OSVROOT-APP-NPM-CVE-2026-111759 No score
CVE-2026-111759 in markdown-it - Patched by Root
Root has patched CVE-2026-111759 in the markdown-it package for Root:npm. Multiple fixed versions available.
- Record
ROOT-APP-NPM-CVE-2026-111759- Updated
- 2026-11-02
Affected products
Affected packages
| Package | Affected | Fixed |
|---|---|---|
markdown-itnpm |
15.0.0 up to 15.0.2 | 15.0.2 |
markdown-itnpm |
before 14.3.2 | 14.3.2 |
markdown-itTuxCare:npm |
14.3.1-tuxcare.0 up to 14.3.1-tuxcare.1, plus listed versions 14.3.1 |
14.3.1-tuxcare.1 |
markdown-itTuxCare:npm |
14.3.0-tuxcare.0 up to 14.3.0-tuxcare.2, plus listed versions 14.3.014.3.0-tuxcare.1 |
14.3.0-tuxcare.2 |
markdown-itTuxCare:npm |
13.0.2-tuxcare.0 up to 13.0.2-tuxcare.4, plus listed versions 13.0.213.0.2-tuxcare.113.0.2-tuxcare.213.0.2-tuxcare.3 |
13.0.2-tuxcare.4 |
markdown-itTuxCare:npm |
12.3.2-tuxcare.0 up to 12.3.2-tuxcare.2, plus listed versions 12.3.212.3.2-tuxcare.1 |
12.3.2-tuxcare.2 |
markdown-itTuxCare:npm |
12.3.0-tuxcare.0 up to 12.3.0-tuxcare.3, plus listed versions 12.3.012.3.0-tuxcare.112.3.0-tuxcare.2 |
12.3.0-tuxcare.3 |
markdown-itTuxCare:npm From an advisory covering 2 CVEs |
4.0.3-tuxcare.0 up to 4.0.3-tuxcare.4, plus listed versions 4.0.34.0.3-tuxcare.14.0.3-tuxcare.24.0.3-tuxcare.3 |
4.0.3-tuxcare.4 |
markdown-itTuxCare:npm |
4.4.0-tuxcare.0 up to 4.4.0-tuxcare.6, plus listed versions 4.4.04.4.0-tuxcare.14.4.0-tuxcare.24.4.0-tuxcare.34.4.0-tuxcare.44.4.0-tuxcare.5 |
4.4.0-tuxcare.6 |
markdown-itTuxCare:npm From an advisory covering 2 CVEs |
8.4.2-tuxcare.0 up to 8.4.2-tuxcare.4, plus listed versions 8.4.28.4.2-tuxcare.18.4.2-tuxcare.28.4.2-tuxcare.3 |
8.4.2-tuxcare.4 |
Show 12 moreShow less
| Package | Affected | Fixed |
|---|---|---|
markdown-itTuxCare:npm From an advisory covering 2 CVEs |
4.3.0-tuxcare.0 up to 4.3.0-tuxcare.7, plus listed versions 4.3.04.3.0-tuxcare.14.3.0-tuxcare.24.3.0-tuxcare.34.3.0-tuxcare.44.3.0-tuxcare.54.3.0-tuxcare.6 |
4.3.0-tuxcare.7 |
markdown-itTuxCare:npm From an advisory covering 3 CVEs |
14.2.0-tuxcare.0 up to 14.2.0-tuxcare.1, plus listed versions 14.2.0 |
14.2.0-tuxcare.1 |
markdown-itTuxCare:npm From an advisory covering 4 CVEs |
10.0.0-tuxcare.0 up to 10.0.0-tuxcare.1, plus listed versions 10.0.0 |
10.0.0-tuxcare.1 |
node-markdown-itDebian:12 |
All versions, plus listed versions 22.2.3+dfsg+~12.2.3-222.2.3+dfsg+~12.2.3-322.2.3+dfsg+~12.2.3-422.2.3+dfsg+~12.2.3-5 |
None known |
node-markdown-itDebian:13 |
All versions, plus listed versions 22.2.3+dfsg+~12.2.3-222.2.3+dfsg+~12.2.3-322.2.3+dfsg+~12.2.3-422.2.3+dfsg+~12.2.3-5 |
None known |
node-markdown-itDebian:14 |
All versions, plus listed versions 22.2.3+dfsg+~12.2.3-222.2.3+dfsg+~12.2.3-322.2.3+dfsg+~12.2.3-422.2.3+dfsg+~12.2.3-5 |
None known |
markdown-itRoot:npm |
before 13.0.2-aikido.2 | 13.0.2-aikido.214.3.0-aikido.114.1.0-aikido.414.2.0-aikido.214.3.2-aikido.1 |
@rootio/markdown-itRoot:npm |
before 13.0.2-root.io.2 | 13.0.2-root.io.214.3.0-root.io.114.1.0-root.io.414.2.0-root.io.214.3.2-root.io.1 |
node-markdown-itUbuntu:22.04:LTS |
All versions, plus listed versions 10.0.0+dfsg-210.0.0+dfsg-310.0.0+dfsg-3.110.0.0+dfsg-410.0.0+dfsg-510.0.0+dfsg-6 |
None known |
node-markdown-itUbuntu:24.04:LTS |
All versions, plus listed versions 22.2.3+dfsg+~12.2.3-2 |
None known |
node-markdown-itUbuntu:26.10 |
All versions, plus listed versions 22.2.3+dfsg+~12.2.3-422.2.3+dfsg+~12.2.3-5 |
None known |
node-markdown-itUbuntu:26.04:LTS |
All versions, plus listed versions 22.2.3+dfsg+~12.2.3-222.2.3+dfsg+~12.2.3-4 |
None known |
History
| Recorded | Changed | Sources |
|---|---|---|
| affected, aliases | OSV | |
| affected | ||
| affected, aliases, facts | OSV | |
| first indexed | CVE List, EUVD, GitHub Advisories, NVD, OSV |
Dates are when Every CVE recorded each change. Upstream dates may differ.
In short
CVE-2026-111759 is a high vulnerability (CVSS 7.5) in Markdown-it, published October 19, 2026. No source lists public exploit code. EPSS puts the chance of exploitation in the next 30 days at 0.59%, the 48th percentile. Fixed in markdown-it 15.0.2.
References
github.com/markdown-it/markdown-it/security/advisories/GHSA-r7fv-28h4-cvq7
github.com/markdown-it/markdown-it/commit/1b379c1b6d0522421bd1a51b77337c79af2c8670
github.com/markdown-it/markdown-it/commit/cf27366035edf9196667110c47d9d67b030a4152
github.com/markdown-it/markdown-it/commit/daf5a3c32303e5d9de01b12eeb725fb5990b8162
github.com/markdown-it/markdown-it/releases/tag/14.3.2
github.com/markdown-it/markdown-it/releases/tag/15.0.2
Show 7 moreShow less
nvd.nist.gov/vuln/detail/CVE-2026-111759
github.com/advisories/GHSA-r7fv-28h4-cvq7
github.com/CVEProject/cvelistV5/tree/main/cves/2026/111xxx/CVE-2026-111759.json
security-tracker.debian.org/tracker/CVE-2026-111759
github.com/markdown-it/markdown-it
ubuntu.com/security/CVE-2026-111759
cve.org/CVERecord?id=CVE-2026-111759