Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessAttacker crafts Gantt diagram excluding all seven weekdays
-
DeliverySubmits diagram to Mermaid-rendering platform via content submission
-
ExploitPlatform calls mermaid render path, invoking ganttDb.getTasks()
-
ExecutionfixTaskDates enters infinite loop seeking a non-excluded date
-
PersistRendering thread or browser tab hangs indefinitely
-
ImpactService degradation or frozen UI for affected user or worker
Vulnerability Assessment
| Weakness |
CWE
ASVS 5.0
V15 - Secure Coding and Architecture Loop termination conditions
MITRE ATT&CK
1 technique across 1 tactic: Impact The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up. |
| Exploitation Conditions | The vulnerability requires three concurrent conditions: (1) the target application uses the mermaid npm package at a vulnerable version (10.x < 10.9.6 or 11.0.0-alpha.1 through 11.14.0); (2) the application invokes the rendering path that calls ganttDb.getTasks() - mermaid.parse() alone is NOT sufficient; and (3) the attacker can supply or influence Mermaid diagram syntax that reaches the renderer, specifically a gantt block with an excludes directive that covers all seven weekday names or an equivalent all-encompassing combination. No authentication is required by the library itself - the authentication barrier depends entirely on what access controls the host application places on diagram submission. The DoS effect is scoped to the rendering thread or browser tab: it does not affect system availability beyond the rendering process. Deployments where diagram content is exclusively authored by trusted users, or where pre-render input validation rejects all-day-excluded gantt charts, are not exploitable. |
| Impact | The CVSS 4.0 score of 5.3 with vector AV:N/AC:L/AT:N/PR:N/UI:P/VC:N/VI:N/VA:L/SC:N/SI:N/SA:L accurately characterizes the attack as network-reachable, low-complexity, and requiring only passive user interaction (a user or automated job rendering the diagram). Impact is bounded to availability at Low severity - this causes a hung rendering thread or frozen browser tab, not a crash of the underlying host or data exfiltration. EPSS of 0.04% (14th percentile) is very low, indicating minimal observed exploitation activity, consistent with the absence of a CISA KEV entry. However, the advisory itself contains a trivial three-line PoC, meaning the barrier to reproduction is near-zero. Real-world risk is asymmetric: negligible for deployments where diagram content is authored and controlled by trusted users, but meaningful for any SaaS or collaboration platform that renders untrusted user-supplied Mermaid syntax without pre-render sanitization. There is no CVSS 3.x vector provided in the input - the 4.0 vector is the authoritative scoring source. |
| Exploit ScenarioDerived | An attacker with posting access to a platform that renders user-supplied Mermaid diagrams - such as a GitHub wiki, GitLab issue, Confluence page, or a custom documentation tool - submits a Gantt chart block containing 'excludes monday,tuesday,wednesday,thursday,friday,saturday,sunday'. The minimal PoC published in the advisory is sufficient. When any user or automated pipeline renders the page, the Mermaid rendering engine calls ganttDb.getTasks(), enters fixTaskDates, and spins indefinitely with no CPU yield, hanging the browser tab on client-side platforms or consuming a server worker thread until the process is killed or times out. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Jul 23, 2026
Infinite-loop denial-of-service in Mermaid's Gantt chart renderer affects npm/mermaid v11.14.0 and earlier (including 11.x alpha/beta) and all 10.x releases prior to v10.9.6, allowing any party who can supply diagram syntax to a rendering pipeline to permanently hang the rendering thread or browser tab. The attack surface is specifically platforms that accept user-supplied Mermaid content and call the render path - wikis, issue trackers, documentation tools, and SaaS products embedding Mermaid. No public exploit is independently confirmed beyond the minimal reproducer included in the advisory itself; EPSS sits at 0.04% (14th percentile), consistent with no observed mass exploitation and no CISA KEV listing.
RemediationAI
Upgrade to mermaid v11.15.0 (11.x branch) or v10.9.6 (10.x branch); both are vendor-confirmed patched releases available on npm. The underlying fix is present in commits faafb5d49106dd32c367f3882505f2dd625aa30e (v11.15.0) and a59ea56174712ee5430dfd5bc877cb5151f501a6 (v10.9.6). The vendor explicitly states no workaround exists without upgrading. For teams unable to upgrade immediately, a compensating control is to validate the excludes field on the server side before passing diagram content to the renderer - specifically, reject any Gantt diagram where the union of excluded values covers all seven days (monday, tuesday, wednesday, thursday, friday, saturday, sunday, weekends). This validation is imperfect because it does not cover exhaustive specific-date exclusions and adds custom parsing logic that must be maintained, so it is strictly inferior to patching. Server-side rendering pipelines can additionally wrap the render call in a timeout and kill the worker on expiry, limiting the blast radius to a single request rather than an entire worker process.
Affected VersionsENISA
Affected Packages
Source: OSV (Open Source Vulnerabilities)
Affects your stack
Affects 2 packages in npm, euvd
Checking this CVE against your own stacks and servers is part of the Basic plan and up.
Technical ContextAI · show details
Mermaid (pkg:npm/mermaid) is a JavaScript diagramming library that generates diagrams from text syntax, widely embedded in platforms such as GitHub, GitLab, Confluence, and Obsidian. The root cause is CWE-835 (Loop with Unreachable Exit Condition). The Gantt renderer's fixTaskDates function in ganttDb.js iterates a date forward until it lands on a day not listed in the excludes exclusion set. When all seven weekday names (monday through sunday) or equivalent combinations (e.g., 'weekends' plus individual weekdays) are listed in the excludes attribute, every candidate date is excluded and the loop has no reachable exit condition - it spins indefinitely. The vulnerability is latent in mermaid.parse() but only triggered when ganttDb.getTasks() is invoked, which occurs during diagram rendering. The patch (commits faafb5d and a59ea56 for v11.15.0 and v10.9.6 respectively) adds a hard cap of 10,000 iterations before throwing a descriptive error, converting the infinite loop into a bounded, catchable failure.
Know when the next one hits your stack
- Watch products and get an email when something new is published
- Check this CVE against your own stack and servers
- Exploit and PoC references, threat intelligence from 22 sources
No credit card · 7-day full trial
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
Network-delivered via crafted diagram content requiring no authentication (PR:N), but a user or automated job must render it (UI:R); only availability is affected, scoped to the rendering process (A:L, S:U).
Primary rating from Vendor (https://github.com/mermaid-js/mermaid).
CVSS VectorVendor: https://github.com/mermaid-js/mermaid
Lifecycle Timeline
3DescriptionCVE.org
Impact
Mermaid v11.14.0 and earlier are vulnerable to a denial-of-service attack when rendering gantt charts, if they use the excludes attribute to exclude all dates.
Example:
gantt
excludes monday,tuesday,wednesday,thursday,friday,saturday,sunday
DoS :2025-01-01, 1dmermaid.parse is unaffected, unless you then call the ganttDb.getTasks() (which is called when rendering a diagram).
Patches
This has been patched in:
- v11.15.0 (see faafb5d49106dd32c367f3882505f2dd625aa30e)
- v10.9.6 (see a59ea56174712ee5430dfd5bc877cb5151f501a6)
Workarounds
There are no workarounds available without updating to a newer version of mermaid.
Threat Intelligence Overview
How this decision was reached
The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.
What every action level means
SSVC AssessmentENISA
Priority Score
Attack Technique
Denial of Service attacks render applications or systems unavailable by overwhelming resources or triggering failure conditions.
EUVD-2026-33325
GHSA-6m6c-36f7-fhxh
NVD
CVE.org
EPSS
VulDB
Exploit-DB