CVE-2026-41149 json
Mermaid: Improper sanitization of `classDef` in state diagrams leads to HTML injection
published 2026-05-11 5 mo ago modified 2026-09-10 1 mo ago also EUVD-2026-31520 , GHSA-ghcm-xqfw-q4vr
- cvss
- 5.3
- version 4.0, CNA
- cisa kev
- Not listed
- not in CISA's catalog
- epss
- 0.4%
- EPSS 0.4% chance of exploitation in 30 days, percentile 34%
- public exploits
- 0
- none known
Summary
Mermaid is a JavaScript tool that uses Markdown-inspired text to create and modify diagrams and charts. Versions 10.9.5 and earlier, as well as 11.0.0-alpha.1 through 11.14.0, are vulnerable to HTML injection under the default configuration. Specifically, the classDef directive in Mermaid state diagrams permits DOM injection that escapes the SVG context. However, <script> tags are stripped, which prevents cross-site scripting (XSS). This issue has been fixed in versions 10.9.6 and 11.15.0. If developers are unable to immediately upgrade, they can work around this issue by setting "securityLevel": "sandbox", which prevents the issue by rendering the mermaid diagram in a sandboxed <iframe>.
Patch / fix
- npm mermaid 10.9.6, 11.15.0
- mermaid_project mermaid 10.9.6, 11.15.0
Vendor advisories
What the vendors themselves say about their products: affected, fixed or not affected, and what to do.
red hat product security vex CVE-2026-41149 updated cvss 5.4
mermaid: Mermaid: HTML injection via classDef directive in state diagrams
-
Red Hat Build of Podman Desktop rh-podman-desktop.git Red Hat OpenShift AI (RHOAI) rhoai/odh-workbench-codeserver-datascience-cpu-py312-rhel9affected: workaround, no fix available “Fix deferred”
Red Hat CSAF VEX © Red Hat, Inc., from https://security.access.redhat.com/data/csaf/v2/vex/; changed: reduced to product statuses and remediations. CC BY 4.0 · csaf
CISA SSVC
- Exploitation
- Proof of concept is public
- Automatable
- no
- Technical impact
- partial
- Assessed
- 5 mo ago
Exploit prediction
0.40% chance of exploitation in the next 30 days, higher than 34% of all scored CVEs (FIRST EPSS, 2026-11-08).
Exploits and checks
- github.com https://github.com/mermaid-js/mermaid/security/advisories/GHSA-ghcm-xqfw-q4vr referenced PoC, tagged "exploit" by a source, unverified
CVSS scores
| assigned by | version | score | vector |
|---|---|---|---|
| CNA | 4.0 | 5.3 | CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:P/VC:N/VI:L/VA:N/SC:L/SI:L/SA:L |
| CNA | 4.0 | 5.3 | CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:P/VC:N/VI:L/VA:N/SC:L/SI:L/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 |
Affected packages
| ecosystem | package | affected | fixed in |
|---|---|---|---|
| npm | mermaid | >=11.0.0-alpha.1, <11.15.0 <10.9.6 |
11.15.0 10.9.6 |
Affected products
- mermaid-js mermaid
Classification
- Weakness
-
- CWE-94 Improper Control of Generation of Code
References
-
github.com
/mermaid-js/mermaid/commit/37ff937f1da2e19f882fd1db01235db4d01f4056
web
-
github.com
/mermaid-js/mermaid/commit/4e2d512bf5bf6f9de1a8f0a48da78dc4d09ac4f3
web
-
github.com
/mermaid-js/mermaid/security/advisories/GHSA-ghcm-xqfw-q4vr
exploit, web
-
nvd.nist.gov
/vuln/detail/CVE-2026-41149
advisory
-
github.com
/mermaid-js/mermaid
package
-
github.com
/mermaid-js/mermaid/releases/tag/mermaid%4011.15.0
web
-
github.com
/mermaid-js/mermaid/releases/tag/v10.9.6
web
-
mermaid.js.org
/config/schema-docs/config.html#securitylevel
web
Sources
- CVE List CVE-2026-41149
- GitHub Advisory GHSA-ghcm-xqfw-q4vr
- NVD CVE-2026-41149
Fencer Vulns keeps one entry per vulnerability: the CVE id wins, then GHSA, and records that alias each other are merged, except that two CVEs always keep separate entries. The same data is available as JSON.
CPEs and fixed versions use Anchore's correction of NVD's data: Added CPE configurations because not yet analyzed by NVD.