CVE-2022-21681: Exponential catastrophic backtracking (ReDoS) in marked

Published Jan 14, 2022
·
Updated

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.

javascript 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/usingadvanced#workers - https://owasp.org/www-community/attacks/RegularexpressionDenialofService-ReDoS

For more information

If you have any questions or comments about this advisory:

Open an issue in marked

Other sources

Marked is a markdown parser and compiler. Prior to version 4.0.10, the regular expression inline.reflinkSearch may cause catastrophic backtracking against some strings and lead to a denial of service (DoS). Anyone who runs untrusted markdown through a vulnerable version of marked and does not use a worker with a time limit may be affected. This issue is patched in version 4.0.10. As a workaround, avoid running untrusted markdown through marked or run marked on a worker thread and set a reasonable time limit to prevent draining resources.

Affected Software

8 affected componentsFixes available
npm/marked<4.0.10
4.0.10
Marked Project Marked Node.js<4.0.10
Fedoraproject Fedora=36
redhat/markedjs<4.0.10
4.0.10
debian/node-marked<4.0.12+ds+~4.0.1-1
4.0.12+ds+~4.0.1-1
debian/node-marked<4.0.12+ds+~4.0.1-1
4.0.12+ds+~4.0.1-1
debian/node-marked<4.0.12+ds+~4.0.1-1
4.0.12+ds+~4.0.1-1
debian/node-marked
4.2.3+ds+~4.0.7-24.2.3+ds+~4.0.7-418.1.1+~cs7.2.18-1

Remediation

Recommended actions to resolve this vulnerability, in priority order.

  1. Upgrade

    Upgrade npm/marked to a version that resolves this vulnerability.

    Fixed in 4.0.10
  2. Upgrade

    Upgrade redhat/markedjs to a version that resolves this vulnerability.

    Fixed in 4.0.10
  3. Upgrade

    Upgrade debian/node-marked to a version that resolves this vulnerability.

    Fixed in 4.2.3+ds+~4.0.7-2Fixed in 4.2.3+ds+~4.0.7-4Fixed in 18.1.1+~cs7.2.18-1
  4. Upgrade

    Upgrade debian/node-marked to a version that resolves this vulnerability.

    Fixed in 4.0.12+ds+~4.0.1-1
  5. Upgrade

    Upgrade markedjs/marked to a version that resolves this vulnerability.

    Fixed in 4.0.10Patch GHSA-5v2h-r2cx-5xgj
  6. Compensating control

    If you run marked on a worker thread, set a reasonable time limit on the worker to prevent resource draining (avoid running untrusted markdown through marked without a worker time limit).

Event History

Jan 14, 2022
CVE Published
via MITRE·12:00 AM
Data Sourced
via MITRE·12:00 AM
DescriptionSeverityWeakness
Data Sourced
via OSV·05:15 PM
DescriptionSeverityAffected Software
Advisory Published
09:04 PM
May 6, 2022
Data Sourced
via Red Hat·08:14 PM
DescriptionSeverityAffected Software

Frequently Asked Questions

1

What is the severity of CVE-2022-21681?

CVE-2022-21681 has a severity designation of Denial of Service.

2

How do I fix CVE-2022-21681?

To mitigate CVE-2022-21681, upgrade to marked version 4.0.10 or later.

3

Which versions of marked are affected by CVE-2022-21681?

CVE-2022-21681 affects all versions of marked prior to 4.0.10.

4

What impact does CVE-2022-21681 have?

CVE-2022-21681 can lead to a denial of service due to catastrophic backtracking in the regular expression used.

5

Is there a proof of concept for CVE-2022-21681?

Yes, a proof of concept for CVE-2022-21681 demonstrates the exploitation of the vulnerability.

Contact

SecAlerts Pty Ltd.
132 Wickham Terrace
Fortitude Valley,
QLD 4006, Australia
info@secalerts.co
By using SecAlerts services, you agree to our services end-user license agreement. This website is safeguarded by reCAPTCHA and governed by the Google Privacy Policy and Terms of Service. All names, logos, and brands of products are owned by their respective owners, and any usage of these names, logos, and brands for identification purposes only does not imply endorsement. If you possess any content that requires removal, please get in touch with us.
© 2026 SecAlerts Pty Ltd.
ABN: 70 645 966 203, ACN: 645 966 203