CVE-2026-41148 json
Mermaid: Improper sanitization of `classDefs` in diagrams leads to CSS injection
published 2026-05-11 5 mo ago modified 2026-09-10 1 mo ago also EUVD-2026-31515 , GHSA-xcj9-5m2h-648r
- cvss
- 5.3
- version 4.0, CNA
- cisa kev
- Not listed
- not in CISA's catalog
- epss
- 0.3%
- EPSS 0.3% chance of exploitation in 30 days, percentile 27%
- 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 prior, in addition to 11.0.0-alpha.1 through 11.12.0 are vulnerable to CSS injection through improper sanitization. The state diagram (and any other diagram type that routes user-controlled style strings through the createCssStyles parser) captures classDef values using an unrestricted regex that matches everything up to a newline. That value then flows unsanitized through addStyleClass() into createCssStyles() and is assigned to style.innerHTML, so a closing brace (}) in the value terminates the generated CSS selector and turns everything after it into a new CSS rule on the page. This enables page defacement, user tracking via url() callbacks, and DOM attribute exfiltration. 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-41148 updated cvss 5.4
mermaid: Mermaid: CSS injection vulnerability allows page defacement and information disclosure
-
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
- none
- Automatable
- no
- Technical impact
- partial
- Assessed
- 5 mo ago
Exploit prediction
0.34% chance of exploitation in the next 30 days, higher than 27% of all scored CVEs (FIRST EPSS, 2026-11-08).
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/8fead23c59166b7bab6a39eac81acebee2859102
web
-
github.com
/mermaid-js/mermaid/commit/e9b0f34d8d82a6260077764ee45e1d7d90957a0f
web
-
github.com
/mermaid-js/mermaid/security/advisories/GHSA-xcj9-5m2h-648r
web
-
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
-
nvd.nist.gov
/vuln/detail/CVE-2026-41148
advisory
-
github.com
/mermaid-js/mermaid
package
Sources
- CVE List CVE-2026-41148
- GitHub Advisory GHSA-xcj9-5m2h-648r
- NVD CVE-2026-41148
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.