Description
markdown-it is a Markdown parser. From versions 14.1.0 to before 14.3.3, and 15.0.0 to before 15.0.3, a link reference definition whose label or title is never closed is O(n²) with default options. Continuation lines are pulled lazily with str += lineContent in src/rules_block/reference.ts, and the subsequent charCodeAt and slice calls flatten the V8 cons-string, copying everything collected so far; this runs before the rule decides the definition is invalid. No options are required to trigger it. This issue has been patched in versions 14.3.3 and 15.0.3.
References6
- github.com/markdown-it/markdown-it/commit/48fbc465812c440020c66…
- github.com/markdown-it/markdown-it/commit/d99f48839d37af6fd8a26…
- github.com/markdown-it/markdown-it/releases/tag/14.3.3
- github.com/markdown-it/markdown-it/releases/tag/15.0.3
- github.com/markdown-it/markdown-it/security/advisories/GHSA-gfr…
- github.com/markdown-it/markdown-it/security/advisories/GHSA-gfr…
Metrics
- CVSS 3.1
-
7.5
HIGH
Score source: CNA
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H - EPSS — exploit probability
- 1% percentile: 46 · as of 9 November 2026
- CWE
- CWE-400CWE-407
Could this be exploited in your environment?
A patch closes the known hole. A penetration test shows what an attacker can still reach — with proof.