GCVE-1-2026-20206 (CVE-2026-93296)
Vulnerability from gna-1 – Published: 2026-09-17 16:29 – Updated: 2026-09-17 16:29- CWE-79 - Improper Neutralization of Input During Web Page Generation ('Cross-site Scripting')
| URL | Tags |
|---|---|
| https://github.com/MISP/misp/commit/382188d2f | patch |
qwen3.8:27b
advisory
bcp-05-x-01bcp-05-x-02
Draft vulnerability metadata was generated from a git-format patch using an Ollama-hosted language model. Human validation is required before publication.
| Model | Source | Identifier |
|---|---|---|
| qwen3.8:27b | ollama | qwen3.8:27b |
- Generator
-
patch2vuln.pyon 2026-09-17 16:28 - Model
qwen3.8:27b- Input
-
https://github.com/MISP/misp/commit/382188d2f.patch
3c6f0376c712… - Confidence
- high
| Commit | Subject | Patch SHA-256 |
|---|---|---|
382188d2f270
|
fix: [security] Escape object names in the Overmind | 3c6f0376c712… |
Fix summary
The fix applies HTML output encoding to the user-controlled label variable (lbl) before it is interpolated into the innerHTML string in both affected view templates. By wrapping the label with escapeHtml(), any HTML metacharacters in object names are neutralized, preventing injected markup from being interpreted as executable HTML or JavaScript in the viewer's browser.
Patch summary
Two one-line changes in the Overmind theme view templates. In app/View/Themed/Overmind/Elements/Events/View/event_general.ctp (line 607) and app/View/Themed/Overmind/Elements/Servers/View/preview_general.ctp (line 323), the raw lbl variable used in the title attribute and inner text of the legend span element is replaced with escapeHtml(lbl). No other logic, routing, or configuration changes are made.
CVSS rationale
AV:N: The vulnerability is exploitable over the network via a web browser. AC:L: Exploitation requires only creating an object with a crafted name; no race or special conditions. AT:N: The attack targets the same MISP instance. PR:L: The attacker needs low-level authenticated access to create or rename an MISP object. UI:P: The victim passively interacts by viewing the Overmind dashboard page; no click or explicit action is needed beyond normal page rendering. VC/VI/VA:N: No direct impact on the MISP server's confidentiality, integrity, or availability. SC:H/SI:H: The injected script executes in the victim's browser within the MISP origin, enabling full session compromise (cookie theft, data exfiltration, arbitrary actions). SA:N: No availability impact on the victim's browser.
Weakness rationale
- CWE-79 User-controlled object names are concatenated directly into an innerHTML string without HTML encoding, allowing injected markup to execute in the victim's browser. This is a textbook stored XSS via missing output encoding at an HTML sink.
Attack pattern rationale
- CAPEC-1 The attack pattern involves injecting client-side script into a web application via user-controllable data (object names) that is rendered without encoding in an HTML context. CAPEC-1 is the canonical XSS attack pattern and directly matches the mechanism: attacker-controlled data flows into an innerHTML sink. No uncertainty in this mapping; the patch explicitly describes the innerHTML concatenation of unescaped labels.
Assumptions to verify
- The exact affected version range is not explicitly stated in the patch; the tag_version_boundary indicates the fix commit is 55 commits after v2.5.47, suggesting versions up to (but not including) the release containing this commit are affected. The precise fixed version is unspecified.
- PR:L assumes the attacker needs at least low-level authenticated access to create or rename a MISP object whose name appears in the Overmind legend. If unauthenticated object creation is possible in some deployment, PR could be N.
- UI:P assumes the victim simply views the Overmind dashboard page (passive interaction). If the page requires a specific navigation action beyond normal browsing, UI could be A.
- SC:H and SI:H assume the XSS grants full access to the victim's MISP session (cookies, API tokens, in-page data). A more conservative assessment could rate these L if the Overmind view exposes limited data.
- The CAPEC-1 mapping is direct and unambiguous for this stored XSS; no uncertainty is noted beyond the standard CAPEC granularity.
Model comparison
Selected qwen3.8:27b
by deterministic-consensus-v1
The selected result is closest to model consensus; this heuristic does not establish factual correctness and human review remains required.
| Model | Score | Agreement | Confidence | Assumptions |
|---|---|---|---|---|
qwen3.8:27b |
6 | 9 | high | 5 |
{
"containers": {
"cna": {
"affected": [
{
"modules": [
"Overmind theme - Events View (event_general.ctp)",
"Overmind theme - Servers View (preview_general.ctp)"
],
"product": "misp",
"programFiles": [
"app/View/Themed/Overmind/Elements/Events/View/event_general.ctp",
"app/View/Themed/Overmind/Elements/Servers/View/preview_general.ctp"
],
"repo": "https://github.com/MISP/misp",
"vendor": "misp",
"versions": [
{
"lessThan": "2.5.47",
"status": "affected",
"version": "unspecified",
"versionType": "semver"
}
]
}
],
"credits": [
{
"lang": "en",
"type": "reporter",
"value": "Jeroen Pinoy"
},
{
"lang": "en",
"type": "remediation developer",
"value": "iglocska"
},
{
"lang": "en",
"type": "remediation developer",
"value": "Claude Opus 4.8"
}
],
"descriptions": [
{
"lang": "en",
"supportingMedia": [
{
"base64": false,
"type": "text/html",
"value": "\u003cp\u003eMISP contains a stored cross-site scripting (XSS) vulnerability in the Overmind theme\u0027s statistics views. The event General card (event_general.ctp) and the server/feed preview card (preview_general.ctp) constructed donut chart legend labels by directly concatenating object name or category keys into an innerHTML string without HTML-encoding. Because MISP object names (e.g., attribute names, event names, or server/feed identifiers) are user-controllable by any authenticated user with sufficient permissions to create or modify such objects, an attacker could craft a name containing malicious markup (for example, a script tag or event-handler attribute). When any other user viewed the affected Overmind dashboard, the injected markup would be interpreted as live HTML/JavaScript in the victim\u0027s browser, executing in the context of the MISP application origin. This could allow session hijacking, data exfiltration, or arbitrary actions performed on behalf of the victim. The vulnerability requires the attacker to have low-level authenticated access to create or rename an object whose name is rendered in the legend, and the victim to view the Overmind event or server preview page. No special browser conditions or race conditions are required.\u003c/p\u003e"
}
],
"value": "MISP contains a stored cross-site scripting (XSS) vulnerability in the Overmind theme\u0027s statistics views. The event General card (event_general.ctp) and the server/feed preview card (preview_general.ctp) constructed donut chart legend labels by directly concatenating object name or category keys into an innerHTML string without HTML-encoding. Because MISP object names (e.g., attribute names, event names, or server/feed identifiers) are user-controllable by any authenticated user with sufficient permissions to create or modify such objects, an attacker could craft a name containing malicious markup (for example, a script tag or event-handler attribute). When any other user viewed the affected Overmind dashboard, the injected markup would be interpreted as live HTML/JavaScript in the victim\u0027s browser, executing in the context of the MISP application origin. This could allow session hijacking, data exfiltration, or arbitrary actions performed on behalf of the victim. The vulnerability requires the attacker to have low-level authenticated access to create or rename an object whose name is rendered in the legend, and the victim to view the Overmind event or server preview page. No special browser conditions or race conditions are required."
}
],
"impacts": [
{
"capecId": "CAPEC-1",
"descriptions": [
{
"lang": "en",
"value": "CAPEC-1 Cross Site Scripting"
}
]
}
],
"metrics": [
{
"cvssV4_0": {
"Automatable": "NOT_DEFINED",
"Recovery": "NOT_DEFINED",
"Safety": "NOT_DEFINED",
"attackComplexity": "LOW",
"attackRequirements": "NONE",
"attackVector": "NETWORK",
"baseScore": 5.1,
"baseSeverity": "MEDIUM",
"privilegesRequired": "LOW",
"providerUrgency": "NOT_DEFINED",
"subAvailabilityImpact": "NONE",
"subConfidentialityImpact": "NONE",
"subIntegrityImpact": "NONE",
"userInteraction": "PASSIVE",
"valueDensity": "NOT_DEFINED",
"vectorString": "CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:P/VC:N/VI:L/VA:N/SC:N/SI:N/SA:N",
"version": "4.0",
"vulnAvailabilityImpact": "NONE",
"vulnConfidentialityImpact": "NONE",
"vulnIntegrityImpact": "LOW",
"vulnerabilityResponseEffort": "NOT_DEFINED"
},
"format": "CVSS",
"scenarios": [
{
"lang": "en",
"value": "GENERAL"
}
]
}
],
"problemTypes": [
{
"descriptions": [
{
"cweId": "CWE-79",
"description": "CWE-79 Improper Neutralization of Input During Web Page Generation (\u0027Cross-site Scripting\u0027)",
"lang": "en",
"type": "CWE"
}
]
}
],
"providerMetadata": {
"orgId": "00000000-0000-4000-9000-000000000000"
},
"references": [
{
"name": "Security patch",
"tags": [
"patch"
],
"url": "https://github.com/MISP/misp/commit/382188d2f"
}
],
"solutions": [
{
"lang": "en",
"supportingMedia": [
{
"base64": false,
"type": "text/html",
"value": "\u003cp\u003eThe fix applies HTML output encoding to the user-controlled label variable (lbl) before it is interpolated into the innerHTML string in both affected view templates. By wrapping the label with escapeHtml(), any HTML metacharacters in object names are neutralized, preventing injected markup from being interpreted as executable HTML or JavaScript in the viewer\u0027s browser.\u003c/p\u003e"
}
],
"value": "The fix applies HTML output encoding to the user-controlled label variable (lbl) before it is interpolated into the innerHTML string in both affected view templates. By wrapping the label with escapeHtml(), any HTML metacharacters in object names are neutralized, preventing injected markup from being interpreted as executable HTML or JavaScript in the viewer\u0027s browser."
}
],
"title": "MISP Overmind: Stored Cross-Site Scripting via Unescaped Object Names in Statistics Legends",
"x_gcve": [
{
"extensions": {
"bcp-05-x-01": {
"ai_annotations": [
{
"ai_level": "generated",
"description": "Draft vulnerability metadata was generated from a git-format patch using an Ollama-hosted language model. Human validation is required before publication.",
"gna_source": 1,
"models": [
{
"gna_source": 1,
"identifier": "qwen3.8:27b",
"name": "qwen3.8:27b",
"source": "ollama"
}
],
"review_status": "full",
"scope": "record",
"tags": [
"ai-computer-assisted:llm-generated",
"ai-computer-assisted:classification"
]
}
]
},
"bcp-05-x-02": {
"x_patch2vuln": {
"assumptions": [
"The exact affected version range is not explicitly stated in the patch; the tag_version_boundary indicates the fix commit is 55 commits after v2.5.47, suggesting versions up to (but not including) the release containing this commit are affected. The precise fixed version is unspecified.",
"PR:L assumes the attacker needs at least low-level authenticated access to create or rename a MISP object whose name appears in the Overmind legend. If unauthenticated object creation is possible in some deployment, PR could be N.",
"UI:P assumes the victim simply views the Overmind dashboard page (passive interaction). If the page requires a specific navigation action beyond normal browsing, UI could be A.",
"SC:H and SI:H assume the XSS grants full access to the victim\u0027s MISP session (cookies, API tokens, in-page data). A more conservative assessment could rate these L if the Overmind view exposes limited data.",
"The CAPEC-1 mapping is direct and unambiguous for this stored XSS; no uncertainty is noted beyond the standard CAPEC granularity."
],
"capecRationale": [
{
"capecId": "CAPEC-1",
"rationale": "The attack pattern involves injecting client-side script into a web application via user-controllable data (object names) that is rendered without encoding in an HTML context. CAPEC-1 is the canonical XSS attack pattern and directly matches the mechanism: attacker-controlled data flows into an innerHTML sink. No uncertainty in this mapping; the patch explicitly describes the innerHTML concatenation of unescaped labels."
}
],
"commit": "382188d2f27004118592cf32f970313b31abcb52",
"confidence": "high",
"credits": [
{
"lang": "en",
"type": "reporter",
"value": "Jeroen Pinoy"
},
{
"lang": "en",
"type": "remediation developer",
"value": "iglocska"
},
{
"lang": "en",
"type": "remediation developer",
"value": "Claude Opus 4.8"
}
],
"cvssRationale": "AV:N: The vulnerability is exploitable over the network via a web browser. AC:L: Exploitation requires only creating an object with a crafted name; no race or special conditions. AT:N: The attack targets the same MISP instance. PR:L: The attacker needs low-level authenticated access to create or rename an MISP object. UI:P: The victim passively interacts by viewing the Overmind dashboard page; no click or explicit action is needed beyond normal page rendering. VC/VI/VA:N: No direct impact on the MISP server\u0027s confidentiality, integrity, or availability. SC:H/SI:H: The injected script executes in the victim\u0027s browser within the MISP origin, enabling full session compromise (cookie theft, data exfiltration, arbitrary actions). SA:N: No availability impact on the victim\u0027s browser.",
"fixSummary": "The fix applies HTML output encoding to the user-controlled label variable (lbl) before it is interpolated into the innerHTML string in both affected view templates. By wrapping the label with escapeHtml(), any HTML metacharacters in object names are neutralized, preventing injected markup from being interpreted as executable HTML or JavaScript in the viewer\u0027s browser.",
"generatedAt": "2026-09-17T16:28:27.480704Z",
"generator": "patch2vuln.py",
"model": "qwen3.8:27b",
"modelComparison": {
"rankings": [
{
"agreementScore": 9,
"assumptionCount": 5,
"confidence": "high",
"model": "qwen3.8:27b",
"score": 6
}
],
"selectedModel": "qwen3.8:27b",
"selectionMethod": "deterministic-consensus-v1",
"selectionNotice": "The selected result is closest to model consensus; this heuristic does not establish factual correctness and human review remains required."
},
"patchSha256": "3c6f0376c712f90fde19eba1ca80cd16433ad02587b8237862fd64b60607d8bf",
"patchSummary": "Two one-line changes in the Overmind theme view templates. In app/View/Themed/Overmind/Elements/Events/View/event_general.ctp (line 607) and app/View/Themed/Overmind/Elements/Servers/View/preview_general.ctp (line 323), the raw lbl variable used in the title attribute and inner text of the legend span element is replaced with escapeHtml(lbl). No other logic, routing, or configuration changes are made.",
"patchTruncated": false,
"patches": [
{
"commit": "382188d2f27004118592cf32f970313b31abcb52",
"patchSha256": "3c6f0376c712f90fde19eba1ca80cd16433ad02587b8237862fd64b60607d8bf",
"source": "https://github.com/MISP/misp/commit/382188d2f.patch",
"sourceUrl": "https://github.com/MISP/misp/commit/382188d2f.patch",
"subject": "fix: [security] Escape object names in the Overmind"
}
],
"source": "https://github.com/MISP/misp/commit/382188d2f.patch",
"subject": "fix: [security] Escape object names in the Overmind",
"tagVersionBoundary": {
"commits_after_fix": 55,
"repository": "https://github.com/MISP/misp",
"tag": "v2.5.47",
"version": "2.5.47",
"version_type": "semver"
},
"weaknessRationale": [
{
"cweId": "CWE-79",
"rationale": "User-controlled object names are concatenated directly into an innerHTML string without HTML encoding, allowing injected markup to execute in the victim\u0027s browser. This is a textbook stored XSS via missing output encoding at an HTML sink."
}
]
}
}
},
"recordType": "advisory",
"vulnId": "gcve-1-2026-20206"
}
]
}
},
"cveMetadata": {
"assignerOrgId": "00000000-0000-4000-9000-000000000000",
"cveId": "CVE-2026-93296",
"datePublished": "2026-09-17T16:29:07.883708Z",
"dateReserved": "2026-09-17T16:29:16.587Z",
"dateUpdated": "2026-09-17T16:29:16.664153Z",
"state": "PUBLISHED",
"vulnId": "gcve-1-2026-20206"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.1"
}
Sightings
| Author | Source | Type | Date | Other |
|---|
Nomenclature
- Seen: The vulnerability was mentioned, discussed, or observed by the user.
- Confirmed: The vulnerability has been validated from an analyst's perspective.
- Published Proof of Concept: A public proof of concept is available for this vulnerability.
- Exploited: The vulnerability was observed as exploited by the user who reported the sighting.
- Patched: The vulnerability was observed as successfully patched by the user who reported the sighting.
- Not exploited: The vulnerability was not observed as exploited by the user who reported the sighting.
- Not confirmed: The user expressed doubt about the validity of the vulnerability.
- Not patched: The vulnerability was not observed as successfully patched by the user who reported the sighting.
The approach is described in our paper Mapping CVEs to MITRE ATT&CK Techniques: A Curated Gold-Set Classifier and the Limits of LLM-Assisted Label Expansion.
Browse all ATT&CK techniques and the vulnerabilities related to each.
Related by attack behaviour
Vulnerabilities whose description is nearest to this one in the vector space of the CIRCL/vulnerability-attack-technique-biencoder model. This is a similarity search over the bi-encoder space (plain cosine), not a classification, and it has no measured accuracy.