Severity by source
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/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X
Primary rating from GitHub Advisory.
CVSS VectorGitHub Advisory
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/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X
Lifecycle Timeline
9Blast Radius
ecosystem impact- 12 npm packages depend on marked (11 direct, 1 indirect)
Ecosystem-wide dependent count for version 18.0.0.
DescriptionGitHub Advisory
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.
AnalysisAI
Unauthenticated remote attackers can crash Node.js applications using marked versions 18.0.0-18.0.1 by sending a specially crafted 3-byte sequence (tab, vertical tab, newline). The infinite recursion loop exhausts memory and triggers an out-of-memory crash, enabling complete denial of service against any exposed markdown parsing endpoint. Vendor-released patch fixes the vulnerability in version 18.0.2. No public exploit identified at time of analysis, though the attack input is trivially simple and reproducible. CVSS v4.0 8.7 reflects high availability impact with network reachability and no authentication barriers.
Technical ContextAI
The vulnerability exists in marked, a widely-used JavaScript markdown parser and compiler for Node.js environments (CPE: cpe:2.3:a:markedjs:marked). The root cause is classified as CWE-400 (Uncontrolled Resource Consumption), specifically manifesting as infinite recursion during the parsing phase. When the parser encounters the byte sequence \x09\x0b\n (horizontal tab U+0009, vertical tab U+000B, line feed U+000A), the lexer or tokenizer enters an unbounded recursive call stack. Each recursion allocates additional memory without termination conditions, escalating until the Node.js runtime exhausts available heap space and triggers an OOM (out-of-memory) exception. This is a classic algorithmic complexity vulnerability where malformed input exploits inefficient state machine handling in the parser, causing O(∞) time and space complexity from a constant 3-byte input.
RemediationAI
Upgrade marked to version 18.0.2 immediately, as confirmed by the GitHub security advisory at https://github.com/markedjs/marked/security/advisories/GHSA-6v9c-7cg6-27q7. For Node.js projects using npm, execute 'npm update marked' or explicitly set package.json dependency to '>=18.0.2'. For yarn users, run 'yarn upgrade marked'. If immediate upgrade is blocked by dependency conflicts, implement compensating controls: deploy input validation to reject markdown containing vertical tab characters (U+000B) before passing to the parser, accepting the trade-off of potentially rejecting legitimate edge-case content; configure Node.js memory limits via --max-old-space-size flag to contain blast radius, though this only converts crashes to controlled restarts; or isolate markdown parsing in separate worker processes with health monitoring and automatic restart policies to maintain service availability during attacks. All workarounds carry operational overhead and do not eliminate the vulnerability-patching to 18.0.2 remains the only complete remediation.
FortiOS and FortiProxy contain an authentication bypass via the Node.js websocket module allowing unauthenticated remote
Eval injection vulnerability in the internals.batch function in lib/batch.js in the bassmaster plugin before 1.5.2 for t
Flowise version 3.0.5 contains a remote code execution vulnerability in the CustomMCP node. The mcpServerConfig paramete
Node.js 8.5.0 before 8.6.0 allows remote attackers to access unintended files, because a change to ".." handling was inc
An issue was discovered in the node-serialize package 0.0.4 for Node.js. Rated critical severity (CVSS 9.8), this vulner
Directory traversal vulnerability in the st module before 0.2.5 for Node.js allows remote attackers to read arbitrary fi
Multiple SQL injection vulnerabilities in the Manage Accounts page in the AccountManagement.asmx service in the Solarwin
The JS-YAML module before 2.0.5 for Node.js parses input without properly considering the unsafe !!js/function tag, whic
Directory traversal vulnerability in lib/app/index.js in Geddy before 13.0.8 for Node.js allows remote attackers to read
Credential-harvesting malware compromised 84 versions of 42 TanStack npm packages on 2026-05-11 via chained GitHub Actio
Eval injection vulnerability in index.js in the syntax-error package before 1.1.1 for Node.js 0.10.x, as used in IBM Rat
The HTTP server in Node.js 0.10.x before 0.10.21 and 0.8.x before 0.8.26 allows remote attackers to cause a denial of se
Same weakness CWE-400 – Uncontrolled Resource Consumption
View allSame technique Denial Of Service
View allVendor StatusVendor
Share
External POC / Exploit Code
Leaving vuln.today
EUVD-2026-25585
GHSA-6v9c-7cg6-27q7