Inefficient Regular Expression Complexity in marked
Published 14 Jan 2022 · Updated 10 Sept 2026
Affected package
- Affected
- <4.0.10
- Fixed in
- 4.0.10
npm install marked@4.0.10Details
Impact
_What kind of vulnerability is it?_
Denial of service.
The regular expression inline.reflinkSearch may cause catastrophic backtracking against some strings.
PoC is the following.
import * as marked from 'marked'; console.log(marked.parse(`[x]: x \\[\\](\\[\\](\\[\\](\\[\\](\\[\\](\\[\\](\\[\\](\\[\\](\\[\\](\\[\\](\\[\\](\\[\\](\\[\\](\\[\\](\\[\\](\\[\\](\\[\\](\\[\\](\\[\\](\\[\\](\\[\\](\\[\\](\\[\\](\\[\\](\\[\\](\\[\\](\\[\\](\\[\\](\\[\\](\\[\\](`));
_Who is impacted?_
Anyone who runs untrusted markdown through marked and does not use a worker with a time limit.
Patches
_Has the problem been patched?_
Yes
_What versions should users upgrade to?_
4.0.10
Workarounds
_Is there a way for users to fix or remediate the vulnerability without upgrading?_
Do not run untrusted markdown through marked or run marked on a worker thread and set a reasonable time limit to prevent draining resources.
References
_Are there any links users can visit to find out more?_
- https://marked.js.org/using_advanced#workers
- https://owasp.org/www-community/attacks/Regular_expression_Denial_of_Service_-_ReDoS
For more information
If you have any questions or comments about this advisory:
- Open an issue in marked
Is GHSA-5v2h-r2cx-5xgj in any of your client repos?
Checking one package by hand is fine. Checking it across forty client projects is not. NPMscan reads the lockfiles in every GitHub repo you pick, finds each project with an affected marked, and gives you the command that fixes it.
References
- Linkgithub.com/markedjs/marked/security/advisories/GHSA-5v2h-r2cx-5xgj
- Advisorynvd.nist.gov/vuln/detail/CVE-2022-21681
- Linkgithub.com/markedjs/marked/commit/8f806573a3f6c6b7a39b8cdb66ab5ebb8d55a5f5
- Linkgithub.com/markedjs/marked/commit/c4a3ccd344b6929afa8a1d50ac54a721e57012c0
- Packagegithub.com/markedjs/marked
- Linklists.fedoraproject.org/archives/list/package-announce@lists.fedoraproject.org/message/AIXDMC3CSHYW3YWVSQOXAWLUYQHAO5UX
Advisory data from OSV.dev (opens OSV.dev in a new tab), refreshed daily.