CVE-2026-72751: CTI-Transmute: stored XSS in graph UI via Pivotick
UNKNOWNCTI-Transmute, the MISP/STIX conversion and visualisation tool, had a stored cross-site scripting flaw in its graph viewer: attacker-controlled values inside converted CTI objects (node labels, sublabels, properties, node types, and the raw-JSON popup) were passed to HTML-parsing sinks in the Pivotick graph library and to document.write() without escaping, so a poisoned threat-intel indicator could execute arbitrary JavaScript the moment an analyst hovered or selected the node. This matters because CTI-Transmute sits directly in the SOC/CTI intake pipeline — an attacker doesn't need to breach the tool itself, only get a malicious MISP/STIX object ingested via a shared feed, community instance, or manual upload, which is a low-effort, well-understood technique (CWE-79) rather than a novel AI attack vector. EPSS is 0.27% (higher than 81% of scored CVEs, but still a low absolute likelihood of imminent mass exploitation), there is no public exploit or Nuclei template, it is not in CISA KEV, and CISA's SSVC decision is TRACK — the lowest urgency tier. Because the vulnerable code would run in an authenticated analyst's browser session with access to the CTI platform, teams running CTI-Transmute should update to the version containing both fixes referenced in the linked GitHub commits, and in the interim treat externally-sourced MISP/STIX feeds as untrusted content requiring review before visualisation.
What is the risk?
No CVSS score is published, but the flaw is a classic two-stage stored XSS (CWE-79) requiring an attacker to first get a crafted MISP/STIX object ingested and then wait for an analyst to view/interact with the resulting graph node — i.e., some degree of social engineering or feed poisoning plus user interaction, not a direct remote-unauthenticated compromise. CISA's SSVC decision of TRACK, the absence of KEV listing, no public PoC/exploit, and no Nuclei template all point to low near-term exploitation pressure; EPSS at 0.27% (81st percentile) confirms it scores above most CVEs but remains an objectively low absolute probability. Overall risk: LOW-MEDIUM — worth patching on normal cadence, not an emergency.
How does the attack unfold?
How severe is it?
What should I do?
1 step1) Update CTI-Transmute to a version incorporating both remediation commits (b50451a and d34ccac in MISP/cti-transmute) — the first escapes labels and switches Pivotick node/edge properties to textContent-based DOM construction and restricts node type values to a safe identifier charset; the second replaces the raw-JSON popup's document.write()+string interpolation with DOM APIs and textContent. 2) Until patched, restrict which MISP/STIX sources feed into CTI-Transmute to trusted, vetted feeds, and avoid opening the graph view or raw-JSON popup for indicators sourced from untrusted/community feeds. 3) Detection: monitor analyst browser sessions/CSP reports for unexpected inline script execution or DOM sinks (innerHTML, document.write) firing on the CTI-Transmute origin; a Content-Security-Policy disallowing inline scripts on the graph UI page would have blocked exploitation even pre-patch.
What does CISA's SSVC say?
Source: CISA Vulnrichment (SSVC v2.0). Decision based on the CISA Coordinator decision tree.
How is it classified?
Which compliance frameworks are affected?
This CVE is relevant to:
Frequently Asked Questions
What is CVE-2026-72751?
CTI-Transmute, the MISP/STIX conversion and visualisation tool, had a stored cross-site scripting flaw in its graph viewer: attacker-controlled values inside converted CTI objects (node labels, sublabels, properties, node types, and the raw-JSON popup) were passed to HTML-parsing sinks in the Pivotick graph library and to document.write() without escaping, so a poisoned threat-intel indicator could execute arbitrary JavaScript the moment an analyst hovered or selected the node. This matters because CTI-Transmute sits directly in the SOC/CTI intake pipeline — an attacker doesn't need to breach the tool itself, only get a malicious MISP/STIX object ingested via a shared feed, community instance, or manual upload, which is a low-effort, well-understood technique (CWE-79) rather than a novel AI attack vector. EPSS is 0.27% (higher than 81% of scored CVEs, but still a low absolute likelihood of imminent mass exploitation), there is no public exploit or Nuclei template, it is not in CISA KEV, and CISA's SSVC decision is TRACK — the lowest urgency tier. Because the vulnerable code would run in an authenticated analyst's browser session with access to the CTI platform, teams running CTI-Transmute should update to the version containing both fixes referenced in the linked GitHub commits, and in the interim treat externally-sourced MISP/STIX feeds as untrusted content requiring review before visualisation.
Is CVE-2026-72751 actively exploited?
No confirmed active exploitation of CVE-2026-72751 has been reported, but organizations should still patch proactively.
How to fix CVE-2026-72751?
1) Update CTI-Transmute to a version incorporating both remediation commits (b50451a and d34ccac in MISP/cti-transmute) — the first escapes labels and switches Pivotick node/edge properties to textContent-based DOM construction and restricts node type values to a safe identifier charset; the second replaces the raw-JSON popup's document.write()+string interpolation with DOM APIs and textContent. 2) Until patched, restrict which MISP/STIX sources feed into CTI-Transmute to trusted, vetted feeds, and avoid opening the graph view or raw-JSON popup for indicators sourced from untrusted/community feeds. 3) Detection: monitor analyst browser sessions/CSP reports for unexpected inline script execution or DOM sinks (innerHTML, document.write) firing on the CTI-Transmute origin; a Content-Security-Policy disallowing inline scripts on the graph UI page would have blocked exploitation even pre-patch.
What systems are affected by CVE-2026-72751?
This vulnerability affects the following AI/ML architecture patterns: Threat-intelligence visualisation / graph UI tooling, SOC/CTI analyst dashboards consuming external MISP/STIX feeds, CTI data conversion pipelines (MISP <-> STIX).
What is the CVSS score for CVE-2026-72751?
No CVSS score has been assigned yet.
What is the AI security impact?
Affected AI Architectures
MITRE ATLAS Techniques
AML.T0011User ExecutionCompliance Controls Affected
What are the technical details?
Original Advisory
CTI-Transmute is affected by a stored cross-site scripting (XSS) vulnerability in the conversion graph used to visualise converted MISP and STIX content. Attacker-controlled values originating from converted CTI data were passed to multiple HTML-parsing sinks in the graph user interface without sufficient neutralisation. In particular, node labels, node sublabels, edge labels, node properties, edge properties, and node types could contain crafted HTML or JavaScript content. The Pivotick graph library renders some of these values through HTML-parsing operations. Consequently, a malicious value such as an HTML element containing an event handler could be interpreted as markup rather than displayed as plain text. The first remediation explicitly notes that Pivotick rendered node and edge labels as HTML and therefore introduced escaping before data was handed to the graph renderer. A separate vulnerable sink was present in the Open raw JSON functionality. The raw object associated with a graph node was inserted into a new document using document.write() and an interpolated HTML string. Crafted JSON content could therefore break out of the intended <pre> element and inject executable markup. The fix replaced this construction with DOM APIs and assigns the JSON using textContent. The initial correction did not cover all Pivotick rendering paths. A subsequent patch addressed additional XSS vectors in the graph properties panel. Values derived from the original CTI object—including property names, property values, hash algorithm names, child attributes, edge properties, and STIX object types—could still reach Pivotick's HTML resolver. According to the patch, Pivotick's tryResolveHTMLElement processes string values using template.innerHTML, allowing malicious markup to execute when a graph node is hovered over or selected. The complete remediation therefore: * HTML-escapes node labels, node sublabels, and edge labels before they are passed to Pivotick. * Restricts graph node type values to a safe identifier character set. * Wraps node and edge property values in DOM elements populated through textContent, preventing Pivotick from treating attacker-controlled strings as HTML. * Replaces the raw-JSON popup's interpolated document.write() with DOM construction and textContent.
Exploitation Scenario
An adversary crafts a MISP event or STIX bundle containing an indicator whose node label, property value, or type field embeds an HTML element with an event handler (e.g., an <img onerror=...> payload) and gets it ingested into a shared MISP community feed or a feed the target organization consumes. When a SOC/CTI analyst later opens CTI-Transmute to visualise the converted graph and hovers over, selects, or opens the raw JSON for that node, Pivotick's tryResolveHTMLElement (or the legacy document.write() raw-JSON path) renders the payload as markup instead of text, executing attacker JavaScript in the analyst's authenticated browser session — enabling session/cookie theft, further pivoting into internal tooling reachable from that session, or manipulation of the CTI platform's data.
Weaknesses (CWE)
CWE-79Improper Neutralization of Input During Web Page GenerationCWE-79Improper Neutralization of Input During Web Page GenerationCWE-79 — Improper Neutralization of Input During Web Page Generation: The product does not neutralize or incorrectly neutralizes user-controllable input before it is placed in output that is used as a web page that is served to other users.
- [Architecture and Design] Use a vetted library or framework that does not allow this weakness to occur or provides constructs that make this weakness easier to avoid [REF-1482]. Examples of libraries and frameworks that make it easier to generate properly encoded output include Microsoft's Anti-XSS library, the OWASP ESAPI Encoding module, and Apache Wicket.
- [Implementation, Architecture and Design] Understand the context in which your data will be used and the encoding that will be expected. This is especially important when transmitting data between different components, or when generating outputs that can contain multiple encodings at the same time, such as web pages or multi-part mail messages. Study all expected communication protocols and data representations to determine the required encoding strategies. For any data that will be output to another web page, especially any data that was received from external inputs, use the appropriate encoding on all non-alphanumeric characters. Parts of the same output document may require different encodings, which will vary depending on whether the output is in the: etc. Note that HTML Entity Encoding is only appropriate for the HTML body. Consult the XSS Prevention Cheat Sheet [REF-724] for more details on the types of encoding and escaping that are needed. HTML body Element attributes (such as src="XYZ") URIs JavaScript sections Casca
Source: MITRE CWE corpus.
References
Timeline
Related Vulnerabilities
CVE-2025-5952810.0Flowise: Unauthenticated RCE via MCP config injection
Same attack type: Code ExecutionCVE-2024-291210.0BentoML: RCE via insecure deserialization (CVSS 10)
Same attack type: Code ExecutionCVE-2023-376510.0MLflow: path traversal allows arbitrary file read
Same attack type: Data LeakageCVE-2025-512010.0smolagents: sandbox escape enables unauthenticated RCE
Same attack type: Data LeakageCVE-2026-2185810.0n8n: Input Validation flaw enables exploitation
Same attack type: Code Execution