CVE-2026-41149

Source
https://cve.org/CVERecord?id=CVE-2026-41149
Import Source
https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2026-41149.json
JSON Data
https://api.osv.dev/v1/vulns/CVE-2026-41149
Aliases
Downstream
Related
Published
2026-05-22T22:34:36.944Z
Modified
2026-07-15T01:49:16.362781258Z
Severity
  • 5.3 (Medium) CVSS_V4 - 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 CVSS Calculator
Summary
Mermaid: Improper sanitization of `classDef` in state diagrams leads to HTML injection
Details

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

Database specific
{
    "cwe_ids": [
        "CWE-94"
    ],
    "osv_generated_from": "https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/41xxx/CVE-2026-41149.json",
    "cna_assigner": "GitHub_M"
}
References

Affected packages

Git / github.com/mermaid-js/mermaid

Affected ranges

Type
GIT
Repo
https://github.com/mermaid-js/mermaid
Events
Introduced
0 Unknown introduced commit / All previous commits are affected
Fixed
Fixed
Database specific
{
    "extracted_events": [
        {
            "introduced": "11.0.0-alpha.1"
        },
        {
            "fixed": "11.15.0"
        },
        {
            "introduced": "0"
        },
        {
            "fixed": "10.9.6"
        }
    ],
    "source": "AFFECTED_FIELD"
}

Affected versions

0.*
0.1.0
0.1.1
0.2.0
0.2.1
0.2.13
0.2.14
0.2.15
0.2.16
0.2.2
0.2.3
0.2.4
0.2.5
0.2.6
0.2.7
0.2.8
0.3.0
0.3.1
0.3.2
0.3.3
0.3.4
0.3.5
0.4.0
0.5.0
0.5.1
0.5.2
0.5.3
0.5.4
0.5.5
0.5.6
0.5.7
6.*
6.0.0
7.*
7.0.0
7.0.2
7.0.3
7.0.5
8.*
8.1.0
8.11.0-rc2
8.11.3
8.11.4
8.12.1
8.13.10
8.13.11
8.13.5
8.13.6
8.13.7
8.2.0
8.2.1
8.2.2
8.2.3
8.2.4
8.2.5
8.2.6
8.3.0
8.4.4
8.4.6
8.4.8
8.5.1
8.5.2
8.6.0
8.6.2
8.7.0
8.8.0
8.8.3
8.9.1
8.9.3
9.*
9.1.2
9.1.3
9.1.5
@mermaid-js/examples@1.*
@mermaid-js/examples@1.1.0
@mermaid-js/examples@1.2.0
@mermaid-js/layout-elk@0.*
@mermaid-js/layout-elk@0.1.1
@mermaid-js/layout-elk@0.1.2
@mermaid-js/layout-elk@0.1.3
@mermaid-js/layout-elk@0.1.4
@mermaid-js/layout-elk@0.1.5
@mermaid-js/layout-elk@0.1.6
@mermaid-js/layout-elk@0.1.7
@mermaid-js/layout-elk@0.1.8
@mermaid-js/layout-elk@0.1.9
@mermaid-js/layout-elk@0.2.0
@mermaid-js/layout-elk@0.2.1
@mermaid-js/layout-tidy-tree@0.*
@mermaid-js/layout-tidy-tree@0.2.0
@mermaid-js/layout-tidy-tree@0.2.1
@mermaid-js/layout-tidy-tree@0.2.2
@mermaid-js/mermaid-zenuml@0.*
@mermaid-js/mermaid-zenuml@0.2.1
@mermaid-js/mermaid-zenuml@0.2.2
@mermaid-js/parser@0.*
@mermaid-js/parser@0.2.0
@mermaid-js/parser@0.3.0
@mermaid-js/parser@0.4.0
@mermaid-js/parser@0.5.0
@mermaid-js/parser@0.6.0
@mermaid-js/parser@0.6.1
@mermaid-js/parser@0.6.3
@mermaid-js/parser@1.*
@mermaid-js/parser@1.0.0
@mermaid-js/parser@1.0.1
@mermaid-js/parser@1.1.0
@mermaid-js/parser@1.1.1
@mermaid-js/tiny@11.*
@mermaid-js/tiny@11.10.0
@mermaid-js/tiny@11.10.1
@mermaid-js/tiny@11.11.0
@mermaid-js/tiny@11.12.0
@mermaid-js/tiny@11.12.1
@mermaid-js/tiny@11.12.3
@mermaid-js/tiny@11.13.0
@mermaid-js/tiny@11.14.0
@mermaid-js/tiny@11.7.0
@mermaid-js/tiny@11.8.0
@mermaid-js/tiny@11.8.1
mermaid@11.*
mermaid@11.0.1
mermaid@11.0.2
mermaid@11.1.0
mermaid@11.1.1
mermaid@11.10.0
mermaid@11.10.1
mermaid@11.11.0
mermaid@11.12.0
mermaid@11.12.1
mermaid@11.12.2
mermaid@11.12.3
mermaid@11.13.0
mermaid@11.14.0
mermaid@11.2.0
mermaid@11.2.1
mermaid@11.3.0
mermaid@11.4.0
mermaid@11.4.1
mermaid@11.5.0
mermaid@11.6.0
mermaid@11.7.0
mermaid@11.8.0
mermaid@11.8.1
Other
untagged-31c93788afe260d914bb
untagged-566ebfbf21141b604025
untagged-7651dabb407ecd5631ce
untagged-f43366252632a1a42020
v10.*
v10.1.0
v10.3.0
v10.4.0
v10.7.0
v10.9.0
v10.9.1
v10.9.2
v10.9.3
v10.9.4
v10.9.5
v11.*
v11.0.0

Database specific

source
"https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2026-41149.json"