Every CVE Search/ Get API key

CVE-2026-111759

markdown-it: Quadratic complexity in smartquotes with unmatched closing quotes

7.5 HighFix available

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

0.59%Unchanged since Oct 20, 2026
90%50%10%1%

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 HighCVSS: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 HighCVSS: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 HighCVSS: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 HighCVSS: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 HighCVSS: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 HighCVSS: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 HighCVSS: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 HighCVSS: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

Affected packages
PackageAffectedFixed
markdown-it
npm
15.0.0 up to 15.0.2
15.0.2
markdown-it
npm
before 14.3.2
14.3.2
markdown-it
TuxCare: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-it
TuxCare: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-it
TuxCare: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-it
TuxCare: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-it
TuxCare: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-it
TuxCare: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-it
TuxCare: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-it
TuxCare: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
Affected packages
PackageAffectedFixed
markdown-it
TuxCare: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-it
TuxCare: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-it
TuxCare: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-it
Debian: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-it
Debian: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-it
Debian: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-it
Root: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-it
Root: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-it
Ubuntu: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-it
Ubuntu:24.04:LTS
All versions, plus listed versions
22.2.3+dfsg+~12.2.3-2
None known
node-markdown-it
Ubuntu: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-it
Ubuntu: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

History
RecordedChangedSources
affected, aliasesOSV
affected
affected, aliases, factsOSV
first indexedCVE 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

Show 7 moreShow less
MoveEnter Open