CVE-2026-41680

Marked: OOM Denial of Service via Infinite Recursion in marked Tokenizer

Published Apr 24, 2026 CVSS 4.0 · 8.7 High EPSS < 1% KEV · Not listed
Description
Marked is a markdown parser and compiler. From 18.0.0 to 18.0.1, a critical Denial of Service (DoS) vulnerability exists in marked. By providing a specific 3-byte input sequence a tab, a vertical tab, and a newline (\x09\x0b\n)—an unauthenticated attacker can trigger an infinite recursion loop during parsing. This leads to unbounded memory allocation, causing the host Node.js application to crash via Memory Exhaustion (OOM). This vulnerability is fixed in 18.0.2.

Analysis

AI-generated

Technical impact

Marked, a popular Markdown parser, contains a flaw that triggers an infinite recursion during tokenization when it encounters a specific three‑byte sequence (0x09 0x0B 0x0A). The unbounded recursion causes the parser to allocate memory without limit, leading to a memory exhaustion condition that crashes the host Node.js process. The vulnerability is a resource exhaustion flaw (CWE‑400) amplified by an unprotected infinite loop (CWE‑835) and integer overflow issues (CWE‑674).

Affected Systems

Marked versions from 18.0.0 up to and including 18.0.1 are impacted. These releases are used in Node.js applications that import the marked library for rendering Markdown. Any environment that passes untrusted content to marked may be affected.

Risk and Exploitability

The CVSS score of 8.7 indicates a high‑severity denial of service weakness. The EPSS score of less than 1% suggests that active exploitation is considered unlikely at present, and the vulnerability is not listed in the CISA KEV catalog. An unauthenticated attacker can exploit the issue by feeding the target markdown parser the malicious three‑byte sequence; the attack does not require privileged access or user interaction beyond the ability to supply input to the parser.

Remediation

No solution or workaround provided in the CVE record.

OpenCVE Recommended Actions

  • Upgrade the marked library to version 18.0.2 or later, which includes the fix for the infinite recursion bug.
  • If an upgrade is not immediately possible, configure the parser to operate in safe mode or set a maximum recursion depth to prevent unbounded memory usage.
  • Validate or sanitize user‑supplied Markdown before passing it to marked, ensuring that the specific three‑byte sequence is removed or escaped to thwart exploitation.

Generated by OpenCVE AI on April 28, 2026 at 05:58 UTC.

Tracking

Sign in to view the affected projects.

Advisories

Source ID Title
Github GHSA Github GHSA GHSA-6v9c-7cg6-27q7 Marked Vulnerable to OOM Denial of Service via Infinite Recursion in marked Tokenizer
History
Type Values Removed Values Added
First Time appeared Marked Project
Marked Project marked
CPEs cpe:2.3:a:marked_project:marked:*:*:*:*:*:node.js:*:*
Vendors & Products Marked Project
Marked Project marked
Metrics cvssV3_1

{'score': 7.5, 'vector': 'CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H'}

Type Values Removed Values Added
First Time appeared Markedjs
Markedjs marked
Vendors & Products Markedjs
Markedjs marked
Type Values Removed Values Added
Metrics ssvc

{'options': {'Automatable': 'yes', 'Exploitation': 'poc', 'Technical Impact': 'partial'}, 'version': '2.0.3'}

Type Values Removed Values Added
Description Marked is a markdown parser and compiler. From 18.0.0 to 18.0.1, a critical Denial of Service (DoS) vulnerability exists in marked. By providing a specific 3-byte input sequence a tab, a vertical tab, and a newline (\x09\x0b\n)—an unauthenticated attacker can trigger an infinite recursion loop during parsing. This leads to unbounded memory allocation, causing the host Node.js application to crash via Memory Exhaustion (OOM). This vulnerability is fixed in 18.0.2.
Title Marked: OOM Denial of Service via Infinite Recursion in marked Tokenizer
Weaknesses CWE-400
CWE-674
CWE-835
References
Metrics cvssV4_0

{'score': 8.7, 'vector': 'CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N'}

Weaknesses
  • CWE-400

    Uncontrolled Resource Consumption

  • CWE-674

    Uncontrolled Recursion

  • CWE-835

    Loop with Unreachable Exit Condition ('Infinite Loop')

Sources

Status
PUBLISHED
Assigner
GitHub_M
Published
Updated
Apr 24, 2026, 7:08 PM
Reserved
Apr 22, 2026, 3:53 AM
Status
Analyzed
Published
Apr 24, 2026, 6:16 PM
Modified
Oct 26, 2026, 9:10 PM
Severity
Moderate
Public date
Apr 24, 2026, 5:26 PM