Severity by source
CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:P/VC:N/VI:N/VA:L/SC:N/SI:N/SA:L/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
Network-delivered diagram input, no privileges needed, but a user or server must trigger rendering; pure availability impact with no confidentiality or integrity effect.
Primary rating from Vendor (https://github.com/mermaid-js/mermaid).
CVSS VectorVendor: https://github.com/mermaid-js/mermaid
Lifecycle Timeline
4Blast Radius
ecosystem impact- 7 npm packages depend on mermaid (7 direct, 0 indirect)
Ecosystem-wide dependent count for version 11.6.0.
DescriptionCVE.org
Impact
Mermaid radar diagrams allow arbitrary large values for ticks, which can cause high CPU usage, freezing the webpage/JavaScript process for long periods of time, until the process is eventually killed due to OOM/running out of memory.
Proof-of-concept
radar-beta
axis a, b
curve c {1, 1}
ticks 1000000000Patches
_Has the problem been patched? What versions should users upgrade to?_
This problem has been patched by https://github.com/mermaid-js/mermaid/commit/59b22fad2b3bb04f87a476c84a8a2b24679e607e, which was released in Mermaid v11.16.1
Workarounds
_Is there a way for users to fix or remediate the vulnerability without upgrading?_
There are no known workarounds without updating to a patched version of mermaid.
References
_Are there any links users can visit to find out more?_
- https://github.com/mermaid-js/mermaid/commit/59b22fad2b3bb04f87a476c84a8a2b24679e607e
- https://github.com/mermaid-js/mermaid/releases/tag/mermaid%4011.16.1
AnalysisAI
Denial-of-service in Mermaid's radar-beta diagram renderer allows an attacker who can supply diagram input to trigger unbounded CPU and memory consumption by setting the ticks parameter to an arbitrarily large integer. Affected npm package versions >= 11.6.0 and < 11.16.1 perform no upper-bound validation on the ticks value, causing the JavaScript process - whether a browser tab or a server-side renderer - to freeze indefinitely until the OS terminates it due to OOM. A proof-of-concept is publicly available in the advisory. No KEV listing exists and no EPSS score is provided.
Technical ContextAI
Mermaid (pkg:npm/mermaid) is a JavaScript-based diagramming library widely embedded in documentation platforms including GitHub, GitLab, and Confluence. The radar-beta diagram type exposes a ticks configuration parameter that controls how many concentric tick rings are drawn. The fix (commit 59b22fad) reveals the renderer previously iterated up to the caller-supplied value without any ceiling, and the fix caps it at 32 (matching the visual maximum). CWE-606 (Unchecked Input for Loop Condition) is the accurate root cause: user-controlled numeric input is fed directly into a rendering loop whose iteration count is unbounded, leading to resource exhaustion. The vulnerability exists in the npm package across versions 11.6.0 through 11.16.0 inclusive.
RemediationAI
Upgrade the mermaid npm package to version 11.16.1 or later, which caps the ticks value at 32 via commit 59b22fad2b3bb04f87a476c84a8a2b24679e607e. The release is available at https://github.com/mermaid-js/mermaid/releases/tag/mermaid%4011.16.1 and via standard npm update. The vendor advisory (GHSA-rhh3-jpg6-66xh at https://github.com/mermaid-js/mermaid/security/advisories/GHSA-rhh3-jpg6-66xh) confirms no workarounds exist short of upgrading. If an immediate upgrade is not possible, operators running server-side Mermaid rendering should consider sandboxing the rendering process (e.g., a separate worker with memory and CPU limits via Node.js worker_threads or containerization with cgroup constraints) to bound the impact of a DoS attempt - this does not prevent the DoS but limits blast radius to the isolated process rather than the host service. Input-layer filtering to reject diagram strings containing ticks values above a safe threshold (e.g., > 100) is a viable short-term application-layer workaround, though it requires custom validation logic and may break legitimate edge-case diagrams.
Same weakness CWE-606 – Unchecked Input for Loop Condition
View allSame technique Information Disclosure
View allVendor StatusVendor
SUSE
Severity: ModerateShare
External POC / Exploit Code
Leaving vuln.today
EUVD-2026-54249
GHSA-rhh3-jpg6-66xh