Skip to main content

Mermaid EUVDEUVD-2026-54249

| CVE-2026-71439 MEDIUM
Unchecked Input for Loop Condition (CWE-606)
2026-08-06 https://github.com/mermaid-js/mermaid GHSA-rhh3-jpg6-66xh
5.3
CVSS 4.0 · Vendor: https://github.com/mermaid-js/mermaid
Share

Severity by source

Vendor (https://github.com/mermaid-js/mermaid) PRIMARY
5.3 MEDIUM
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
vuln.today AI
6.5 MEDIUM

Network-delivered diagram input, no privileges needed, but a user or server must trigger rendering; pure availability impact with no confidentiality or integrity effect.

3.1 AV:N/AC:L/PR:N/UI:R/S:U/C:N/I:N/A:H
4.0 AV:N/AC:L/AT:N/PR:N/UI:P/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N
SUSE
MEDIUM
qualitative
Red Hat
6.5 MEDIUM
qualitative

Primary rating from Vendor (https://github.com/mermaid-js/mermaid).

CVSS VectorVendor: https://github.com/mermaid-js/mermaid

Attack Vector
Network
Attack Complexity
Low
Privileges Required
None
User Interaction
P
Scope
X

Lifecycle Timeline

4
CVSS changed
Aug 06, 2026 - 22:22 NVD
5.3 (MEDIUM)
Source Code Evidence Fetched
Aug 06, 2026 - 20:37 vuln.today
Analysis Generated
Aug 06, 2026 - 20:37 vuln.today
CVE Published
Aug 06, 2026 - 20:01 cve.org
MEDIUM

Blast Radius

ecosystem impact
† from your stack dependencies † transitive graph · vuln.today resolves 4-path depth
  • 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
txt
radar-beta
  axis a, b
  curve c {1, 1}
  ticks 1000000000

Patches

_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.

Vendor StatusVendor

SUSE

Severity: Moderate

Share

EUVD-2026-54249 vulnerability details – vuln.today

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy