CVE-2026-112183 (GCVE-0-2026-112183)
Vulnerability from cvelistv5 – Published: 2026-10-19 09:15 – Updated: 2026-10-19 17:15- CWE-74 - Improper Neutralization of Special Elements in Output Used by a Downstream Component
| URL | Tags |
|---|---|
| https://github.com/MISP/MISP/commit/91323b517 | patch |
qwen3.8:27b
1 event
advisory
bcp-05-x-01bcp-05-x-02bcp-05-x-03
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-10-19 09:01 - Model
qwen3.8:27b- Input
-
https://github.com/MISP/MISP/commit/91323b517.patch
8be436940ffd… - Confidence
- medium
| Commit | Subject | Patch SHA-256 |
|---|---|---|
91323b517bb5
|
fix: [sync] Only use a valid colour for remote tags in the | 8be436940ffd… |
Fix summary
The fix introduces strict validation of the tag colour value before it is rendered into a CSS style attribute. Only values matching a valid six-digit hexadecimal colour pattern (e.g. #aabbcc) are accepted; any other value is replaced with a safe default (#ffffff). This prevents arbitrary CSS from being injected through the colour field, aligning the remote tag handling with the validation already applied to local tags.
Patch summary
In app/View/Servers/preview_event.ctp, a regex check (preg_match against /^#[0-9a-f]{6}$/i) is added before the tag colour is used. If the colour does not match the hex pattern, it defaults to #ffffff. The validated $colour variable replaces the raw $tag['colour'] in both the background-color style property and the getTextColour() call, eliminating the untrusted value from the CSS context.
CVSS rationale
AV:N – the attack originates from a remote linked MISP server over the network. AC:L – no race conditions or special timing; simply setting a tag colour suffices. AT:N – no manipulation of the attack target is required. PR:L – the attacker needs low-privilege access (tag creation) on the linked server. UI:A – the victim must actively navigate to the event preview page. VC:N – no direct confidentiality loss on the vulnerable system. VI:N – no integrity impact on the vulnerable system's data. VA:N – no availability impact. SC:L – CSS injection may allow limited information disclosure on the client (e.g., reading page structure via CSS selectors or side channels). SI:L – the attacker can modify the visual presentation of the preview page (UI manipulation, overlay, spoofing). SA:N – no security authority impact.
Weakness rationale
- CWE-74 The tag colour value is not neutralized for the CSS context in which it is placed. HTML entity encoding (h()) does not sanitize CSS metacharacters such as semicolons, colons, or function calls, allowing CSS injection. CWE-74 is the most precise parent weakness covering injection into a downstream component (CSS) without a more specific child CWE for CSS injection.
Attack pattern rationale
- CAPEC-66 The attack exploits the inherent trust between linked MISP instances. The local instance accepts and renders data (tag colours) from a remote linked server without sufficient validation, assuming the data is well-formed. The attacker leverages this trusted relationship to inject CSS. This is the closest CAPEC; no CAPEC specifically models CSS injection via trusted data sources, so CAPEC-66 is the best available match.
Assumptions to verify
- The affected version boundary is inferred from the tag_version_boundary metadata (v2.5.48, 27 commits after fix); the exact first affected version is not stated in the patch.
- PR:L assumes that creating or modifying a tag on a linked MISP server requires only low-level user privileges; the exact permission model was not verified from the patch.
- SC:L assumes CSS injection could enable limited client-side information disclosure (e.g., via CSS selectors or layout manipulation); full XSS or data exfiltration is not evidenced.
- CAPEC-66 is the closest available mapping; no CAPEC specifically models CSS injection via trusted inter-instance data, so this mapping carries uncertainty.
- The commit message states the issue was found during internal review and not externally reported; no external finder or reporter is credited.
- The Co-Authored-By line references an AI tool (Claude Opus 5.5); it is credited as a tool rather than a human remediation developer.
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 | 11 | medium | 6 |
- 2026-09-24 21:54 UTC Fix developed Corrective change authored (91323b517bb5a34f413363faf8703a3c0a1a9904): fix: [sync] Only use a valid colour for remote tags in the https://github.com/MISP/MISP/commit/91323b517.patch
{
"containers": {
"adp": [
{
"metrics": [
{
"other": {
"content": {
"id": "CVE-2026-112183",
"options": [
{
"Exploitation": "none"
},
{
"Automatable": "no"
},
{
"Technical Impact": "partial"
}
],
"role": "CISA Coordinator",
"timestamp": "2026-10-19T17:15:24.498800Z",
"version": "2.0.3"
},
"type": "ssvc"
}
}
],
"providerMetadata": {
"dateUpdated": "2026-10-19T17:15:45.687Z",
"orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
"shortName": "CISA-ADP"
},
"title": "CISA ADP Vulnrichment"
}
],
"cna": {
"affected": [
{
"cpes": [
"cpe:2.3:a:misp:misp:*:*:*:*:*:*:*:*"
],
"modules": [
"Servers/preview_event (remote event preview)"
],
"product": "MISP",
"programFiles": [
"app/View/Servers/preview_event.ctp"
],
"repo": "https://github.com/MISP/MISP",
"vendor": "MISP",
"versions": [
{
"lessThan": "2.5.48",
"status": "affected",
"version": "0",
"versionType": "semver"
}
]
}
],
"credits": [
{
"lang": "en",
"type": "remediation developer",
"value": "iglocska"
},
{
"lang": "en",
"type": "remediation developer",
"value": "Claude Opus 5.5 (1M context)"
}
],
"descriptions": [
{
"lang": "en",
"supportingMedia": [
{
"base64": false,
"type": "text/html",
"value": "\u003cp\u003eMISP contains a CSS injection vulnerability in the remote event preview feature. When a user previews an event from a linked MISP server, the colour value associated with each remote tag is written directly into an inline CSS style attribute without sufficient validation. Although HTML entity encoding is applied, the value is interpreted as CSS within the style attribute, allowing a malicious or compromised linked server to inject arbitrary CSS declarations.\u003c/p\u003e\u003cp\u003eAn attacker with the ability to create or modify tags on a linked MISP instance can craft a tag colour value containing CSS injection payloads. When a user on the local instance views the event preview, the injected CSS is rendered, potentially allowing UI manipulation, visual spoofing, or limited information disclosure through CSS-based techniques.\u003c/p\u003e\u003cp\u003ePreconditions:\u003c/p\u003e\u003cp\u003e- A linked MISP server relationship exists between the victim instance and the attacker-controlled instance.\u003c/p\u003e\u003cp\u003e- The attacker can create or modify tags on the linked server.\u003c/p\u003e\u003cp\u003e- A victim user views the remote event preview page.\u003c/p\u003e\u003cp\u003eAffected: \u0026lt;2.5.48.\u003c/p\u003e"
}
],
"value": "MISP contains a CSS injection vulnerability in the remote event preview feature. When a user previews an event from a linked MISP server, the colour value associated with each remote tag is written directly into an inline CSS style attribute without sufficient validation. Although HTML entity encoding is applied, the value is interpreted as CSS within the style attribute, allowing a malicious or compromised linked server to inject arbitrary CSS declarations.\n\nAn attacker with the ability to create or modify tags on a linked MISP instance can craft a tag colour value containing CSS injection payloads. When a user on the local instance views the event preview, the injected CSS is rendered, potentially allowing UI manipulation, visual spoofing, or limited information disclosure through CSS-based techniques.\n\nPreconditions:\n\n- A linked MISP server relationship exists between the victim instance and the attacker-controlled instance.\n\n- The attacker can create or modify tags on the linked server.\n\n- A victim user views the remote event preview page.\n\nAffected: \u003c2.5.48."
}
],
"impacts": [
{
"capecId": "CAPEC-66",
"descriptions": [
{
"lang": "en",
"value": "CAPEC-66 Leveraging Trusted Relationships"
}
]
}
],
"metrics": [
{
"cvssV4_0": {
"Automatable": "NOT_DEFINED",
"Recovery": "NOT_DEFINED",
"Safety": "NOT_DEFINED",
"attackComplexity": "LOW",
"attackRequirements": "NONE",
"attackVector": "NETWORK",
"baseScore": 4.8,
"baseSeverity": "MEDIUM",
"privilegesRequired": "LOW",
"providerUrgency": "NOT_DEFINED",
"subAvailabilityImpact": "NONE",
"subConfidentialityImpact": "LOW",
"subIntegrityImpact": "LOW",
"userInteraction": "ACTIVE",
"valueDensity": "NOT_DEFINED",
"vectorString": "CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:A/VC:N/VI:N/VA:N/SC:L/SI:L/SA:N",
"version": "4.0",
"vulnAvailabilityImpact": "NONE",
"vulnConfidentialityImpact": "NONE",
"vulnIntegrityImpact": "NONE",
"vulnerabilityResponseEffort": "NOT_DEFINED"
},
"format": "CVSS",
"scenarios": [
{
"lang": "en",
"value": "GENERAL"
}
]
},
{
"format": "SSVC",
"other": {
"content": {
"options": [
{
"Exploitation": "none"
},
{
"Automatable": "yes"
},
{
"Technical Impact": "partial"
}
],
"role": "Supplier",
"timestamp": "2026-10-19T09:01:35Z",
"version": "2.0.3"
},
"type": "SSVC"
},
"scenarios": [
{
"lang": "en",
"value": "GENERAL"
}
]
}
],
"problemTypes": [
{
"descriptions": [
{
"cweId": "CWE-74",
"description": "CWE-74 Improper Neutralization of Special Elements in Output Used by a Downstream Component",
"lang": "en",
"type": "CWE"
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-10-19T09:15:47.453Z",
"orgId": "5a6e4751-2f3f-4070-9419-94fb35b644e8",
"shortName": "CIRCL"
},
"references": [
{
"name": "Security patch",
"tags": [
"patch"
],
"url": "https://github.com/MISP/MISP/commit/91323b517"
}
],
"solutions": [
{
"lang": "en",
"supportingMedia": [
{
"base64": false,
"type": "text/html",
"value": "\u003cp\u003eThe fix introduces strict validation of the tag colour value before it is rendered into a CSS style attribute. Only values matching a valid six-digit hexadecimal colour pattern (e.g. #aabbcc) are accepted; any other value is replaced with a safe default (#ffffff). This prevents arbitrary CSS from being injected through the colour field, aligning the remote tag handling with the validation already applied to local tags.\u003c/p\u003e"
}
],
"value": "The fix introduces strict validation of the tag colour value before it is rendered into a CSS style attribute. Only values matching a valid six-digit hexadecimal colour pattern (e.g. #aabbcc) are accepted; any other value is replaced with a safe default (#ffffff). This prevents arbitrary CSS from being injected through the colour field, aligning the remote tag handling with the validation already applied to local tags."
}
],
"title": "MISP CSS Injection via Remote Tag Colour in Event Preview",
"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 affected version boundary is inferred from the tag_version_boundary metadata (v2.5.48, 27 commits after fix); the exact first affected version is not stated in the patch.",
"PR:L assumes that creating or modifying a tag on a linked MISP server requires only low-level user privileges; the exact permission model was not verified from the patch.",
"SC:L assumes CSS injection could enable limited client-side information disclosure (e.g., via CSS selectors or layout manipulation); full XSS or data exfiltration is not evidenced.",
"CAPEC-66 is the closest available mapping; no CAPEC specifically models CSS injection via trusted inter-instance data, so this mapping carries uncertainty.",
"The commit message states the issue was found during internal review and not externally reported; no external finder or reporter is credited.",
"The Co-Authored-By line references an AI tool (Claude Opus 5.5); it is credited as a tool rather than a human remediation developer."
],
"capecRationale": [
{
"capecId": "CAPEC-66",
"rationale": "The attack exploits the inherent trust between linked MISP instances. The local instance accepts and renders data (tag colours) from a remote linked server without sufficient validation, assuming the data is well-formed. The attacker leverages this trusted relationship to inject CSS. This is the closest CAPEC; no CAPEC specifically models CSS injection via trusted data sources, so CAPEC-66 is the best available match."
}
],
"commit": "91323b517bb5a34f413363faf8703a3c0a1a9904",
"confidence": "medium",
"credits": [
{
"lang": "en",
"type": "remediation developer",
"value": "iglocska"
},
{
"lang": "en",
"type": "remediation developer",
"value": "Claude Opus 5.5 (1M context)"
}
],
"cvssRationale": "AV:N \u2013 the attack originates from a remote linked MISP server over the network. AC:L \u2013 no race conditions or special timing; simply setting a tag colour suffices. AT:N \u2013 no manipulation of the attack target is required. PR:L \u2013 the attacker needs low-privilege access (tag creation) on the linked server. UI:A \u2013 the victim must actively navigate to the event preview page. VC:N \u2013 no direct confidentiality loss on the vulnerable system. VI:N \u2013 no integrity impact on the vulnerable system\u0027s data. VA:N \u2013 no availability impact. SC:L \u2013 CSS injection may allow limited information disclosure on the client (e.g., reading page structure via CSS selectors or side channels). SI:L \u2013 the attacker can modify the visual presentation of the preview page (UI manipulation, overlay, spoofing). SA:N \u2013 no security authority impact.",
"fixSummary": "The fix introduces strict validation of the tag colour value before it is rendered into a CSS style attribute. Only values matching a valid six-digit hexadecimal colour pattern (e.g. #aabbcc) are accepted; any other value is replaced with a safe default (#ffffff). This prevents arbitrary CSS from being injected through the colour field, aligning the remote tag handling with the validation already applied to local tags.",
"generatedAt": "2026-10-19T09:01:35.918427Z",
"generator": "patch2vuln.py",
"model": "qwen3.8:27b",
"modelComparison": {
"rankings": [
{
"agreementScore": 11,
"assumptionCount": 6,
"confidence": "medium",
"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": "8be436940ffd0e21b7145fcb604ebfb0b529f6bbac717ee5cdf38c2e0dc2904e",
"patchSummary": "In app/View/Servers/preview_event.ctp, a regex check (preg_match against /^#[0-9a-f]{6}$/i) is added before the tag colour is used. If the colour does not match the hex pattern, it defaults to #ffffff. The validated $colour variable replaces the raw $tag[\u0027colour\u0027] in both the background-color style property and the getTextColour() call, eliminating the untrusted value from the CSS context.",
"patchTruncated": false,
"patches": [
{
"commit": "91323b517bb5a34f413363faf8703a3c0a1a9904",
"date": "Thu, 24 Sep 2026 23:54:30 +0200",
"patchSha256": "8be436940ffd0e21b7145fcb604ebfb0b529f6bbac717ee5cdf38c2e0dc2904e",
"source": "https://github.com/MISP/MISP/commit/91323b517.patch",
"sourceUrl": "https://github.com/MISP/MISP/commit/91323b517.patch",
"subject": "fix: [sync] Only use a valid colour for remote tags in the"
}
],
"source": "https://github.com/MISP/MISP/commit/91323b517.patch",
"ssvc": {
"options": [
{
"Exploitation": "none"
},
{
"Automatable": "yes"
},
{
"Technical Impact": "partial"
}
],
"role": "Supplier",
"timestamp": "2026-10-19T09:01:35Z",
"version": "2.0.3"
},
"subject": "fix: [sync] Only use a valid colour for remote tags in the",
"tagVersionBoundary": {
"commits_after_fix": 27,
"repository": "https://github.com/MISP/MISP",
"tag": "v2.5.48",
"version": "2.5.48",
"version_type": "semver"
},
"weaknessRationale": [
{
"cweId": "CWE-74",
"rationale": "The tag colour value is not neutralized for the CSS context in which it is placed. HTML entity encoding (h()) does not sanitize CSS metacharacters such as semicolons, colons, or function calls, allowing CSS injection. CWE-74 is the most precise parent weakness covering injection into a downstream component (CSS) without a more specific child CWE for CSS injection."
}
]
}
},
"bcp-05-x-03": {
"x_timeline": {
"events": [
{
"description": "Corrective change authored (91323b517bb5a34f413363faf8703a3c0a1a9904): fix: [sync] Only use a valid colour for remote tags in the",
"id": "evt-fix-developed-1",
"references": [
"https://github.com/MISP/MISP/commit/91323b517.patch"
],
"timestamp": "2026-09-24T21:54:30Z",
"type": "fix-developed"
}
]
}
}
},
"recordType": "advisory",
"vulnId": "GCVE-1-2026-20339"
}
]
}
},
"cveMetadata": {
"assignerOrgId": "5a6e4751-2f3f-4070-9419-94fb35b644e8",
"assignerShortName": "CIRCL",
"cveId": "CVE-2026-112183",
"datePublished": "2026-10-19T09:15:47.453Z",
"dateReserved": "2026-10-19T09:15:45.556Z",
"dateUpdated": "2026-10-19T17:15:45.687Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2",
"vulnerability-lookup:meta": {
"epss": {
"cve": "CVE-2026-112183",
"date": "2026-10-20",
"epss": "0.00288",
"percentile": "0.2014"
},
"nvd": {
"cve": {
"affected": [
{
"affectedData": [
{
"cpes": [
"cpe:2.3:a:misp:misp:*:*:*:*:*:*:*:*"
],
"modules": [
"Servers/preview_event (remote event preview)"
],
"product": "MISP",
"programFiles": [
"app/View/Servers/preview_event.ctp"
],
"repo": "https://github.com/MISP/MISP",
"vendor": "MISP",
"versions": [
{
"lessThan": "2.5.48",
"status": "affected",
"version": "0",
"versionType": "semver"
}
]
}
],
"source": "5a6e4751-2f3f-4070-9419-94fb35b644e8"
}
],
"cveTags": [],
"descriptions": [
{
"lang": "en",
"value": "MISP contains a CSS injection vulnerability in the remote event preview feature. When a user previews an event from a linked MISP server, the colour value associated with each remote tag is written directly into an inline CSS style attribute without sufficient validation. Although HTML entity encoding is applied, the value is interpreted as CSS within the style attribute, allowing a malicious or compromised linked server to inject arbitrary CSS declarations.\n\nAn attacker with the ability to create or modify tags on a linked MISP instance can craft a tag colour value containing CSS injection payloads. When a user on the local instance views the event preview, the injected CSS is rendered, potentially allowing UI manipulation, visual spoofing, or limited information disclosure through CSS-based techniques.\n\nPreconditions:\n\n- A linked MISP server relationship exists between the victim instance and the attacker-controlled instance.\n\n- The attacker can create or modify tags on the linked server.\n\n- A victim user views the remote event preview page.\n\nAffected: \u003c2.5.48."
}
],
"id": "CVE-2026-112183",
"lastModified": "2026-10-19T18:17:03.687",
"metrics": {
"cvssMetricV40": [
{
"cvssData": {
"Automatable": "NOT_DEFINED",
"Recovery": "NOT_DEFINED",
"Safety": "NOT_DEFINED",
"attackComplexity": "LOW",
"attackRequirements": "NONE",
"attackVector": "NETWORK",
"availabilityRequirement": "NOT_DEFINED",
"baseScore": 4.8,
"baseSeverity": "MEDIUM",
"confidentialityRequirement": "NOT_DEFINED",
"exploitMaturity": "NOT_DEFINED",
"integrityRequirement": "NOT_DEFINED",
"modifiedAttackComplexity": "NOT_DEFINED",
"modifiedAttackRequirements": "NOT_DEFINED",
"modifiedAttackVector": "NOT_DEFINED",
"modifiedPrivilegesRequired": "NOT_DEFINED",
"modifiedSubAvailabilityImpact": "NOT_DEFINED",
"modifiedSubConfidentialityImpact": "NOT_DEFINED",
"modifiedSubIntegrityImpact": "NOT_DEFINED",
"modifiedUserInteraction": "NOT_DEFINED",
"modifiedVulnAvailabilityImpact": "NOT_DEFINED",
"modifiedVulnConfidentialityImpact": "NOT_DEFINED",
"modifiedVulnIntegrityImpact": "NOT_DEFINED",
"privilegesRequired": "LOW",
"providerUrgency": "NOT_DEFINED",
"subAvailabilityImpact": "NONE",
"subConfidentialityImpact": "LOW",
"subIntegrityImpact": "LOW",
"userInteraction": "ACTIVE",
"valueDensity": "NOT_DEFINED",
"vectorString": "CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:A/VC:N/VI:N/VA:N/SC:L/SI:L/SA:N/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",
"version": "4.0",
"vulnAvailabilityImpact": "NONE",
"vulnConfidentialityImpact": "NONE",
"vulnIntegrityImpact": "NONE",
"vulnerabilityResponseEffort": "NOT_DEFINED"
},
"source": "5a6e4751-2f3f-4070-9419-94fb35b644e8",
"type": "Secondary"
}
],
"ssvcV203": [
{
"source": "5a6e4751-2f3f-4070-9419-94fb35b644e8",
"ssvcData": {
"options": [
{
"exploitation": "none"
},
{
"automatable": "yes"
},
{
"technicalImpact": "partial"
}
],
"role": "Supplier",
"timestamp": "2026-10-19T09:01:35Z",
"version": "2.0.3"
}
},
{
"source": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
"ssvcData": {
"id": "CVE-2026-112183",
"options": [
{
"exploitation": "none"
},
{
"automatable": "no"
},
{
"technicalImpact": "partial"
}
],
"role": "CISA Coordinator",
"timestamp": "2026-10-19T17:15:24.498800Z",
"version": "2.0.3"
}
}
]
},
"published": "2026-10-19T10:16:46.970",
"references": [
{
"source": "5a6e4751-2f3f-4070-9419-94fb35b644e8",
"url": "https://github.com/MISP/MISP/commit/91323b517"
}
],
"sourceIdentifier": "5a6e4751-2f3f-4070-9419-94fb35b644e8",
"vulnStatus": "Deferred",
"weaknesses": [
{
"description": [
{
"lang": "en",
"value": "CWE-74"
}
],
"source": "5a6e4751-2f3f-4070-9419-94fb35b644e8",
"type": "Secondary"
}
]
}
},
"vulnrichment": {
"containers": {
"adp": [
{
"metrics": [
{
"other": {
"content": {
"id": "CVE-2026-112183",
"options": [
{
"Exploitation": "none"
},
{
"Automatable": "no"
},
{
"Technical Impact": "partial"
}
],
"role": "CISA Coordinator",
"timestamp": "2026-10-19T17:15:24.498800Z",
"version": "2.0.3"
},
"type": "ssvc"
}
}
],
"providerMetadata": {
"dateUpdated": "2026-10-19T17:15:31.713Z",
"orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
"shortName": "CISA-ADP"
},
"title": "CISA ADP Vulnrichment"
}
],
"cna": {
"affected": [
{
"cpes": [
"cpe:2.3:a:misp:misp:*:*:*:*:*:*:*:*"
],
"modules": [
"Servers/preview_event (remote event preview)"
],
"product": "MISP",
"programFiles": [
"app/View/Servers/preview_event.ctp"
],
"repo": "https://github.com/MISP/MISP",
"vendor": "MISP",
"versions": [
{
"lessThan": "2.5.48",
"status": "affected",
"version": "0",
"versionType": "semver"
}
]
}
],
"credits": [
{
"lang": "en",
"type": "remediation developer",
"value": "iglocska"
},
{
"lang": "en",
"type": "remediation developer",
"value": "Claude Opus 5.5 (1M context)"
}
],
"descriptions": [
{
"lang": "en",
"supportingMedia": [
{
"base64": false,
"type": "text/html",
"value": "\u003cp\u003eMISP contains a CSS injection vulnerability in the remote event preview feature. When a user previews an event from a linked MISP server, the colour value associated with each remote tag is written directly into an inline CSS style attribute without sufficient validation. Although HTML entity encoding is applied, the value is interpreted as CSS within the style attribute, allowing a malicious or compromised linked server to inject arbitrary CSS declarations.\u003c/p\u003e\u003cp\u003eAn attacker with the ability to create or modify tags on a linked MISP instance can craft a tag colour value containing CSS injection payloads. When a user on the local instance views the event preview, the injected CSS is rendered, potentially allowing UI manipulation, visual spoofing, or limited information disclosure through CSS-based techniques.\u003c/p\u003e\u003cp\u003ePreconditions:\u003c/p\u003e\u003cp\u003e- A linked MISP server relationship exists between the victim instance and the attacker-controlled instance.\u003c/p\u003e\u003cp\u003e- The attacker can create or modify tags on the linked server.\u003c/p\u003e\u003cp\u003e- A victim user views the remote event preview page.\u003c/p\u003e\u003cp\u003eAffected: \u0026lt;2.5.48.\u003c/p\u003e"
}
],
"value": "MISP contains a CSS injection vulnerability in the remote event preview feature. When a user previews an event from a linked MISP server, the colour value associated with each remote tag is written directly into an inline CSS style attribute without sufficient validation. Although HTML entity encoding is applied, the value is interpreted as CSS within the style attribute, allowing a malicious or compromised linked server to inject arbitrary CSS declarations.\n\nAn attacker with the ability to create or modify tags on a linked MISP instance can craft a tag colour value containing CSS injection payloads. When a user on the local instance views the event preview, the injected CSS is rendered, potentially allowing UI manipulation, visual spoofing, or limited information disclosure through CSS-based techniques.\n\nPreconditions:\n\n- A linked MISP server relationship exists between the victim instance and the attacker-controlled instance.\n\n- The attacker can create or modify tags on the linked server.\n\n- A victim user views the remote event preview page.\n\nAffected: \u003c2.5.48."
}
],
"impacts": [
{
"capecId": "CAPEC-66",
"descriptions": [
{
"lang": "en",
"value": "CAPEC-66 Leveraging Trusted Relationships"
}
]
}
],
"metrics": [
{
"cvssV4_0": {
"Automatable": "NOT_DEFINED",
"Recovery": "NOT_DEFINED",
"Safety": "NOT_DEFINED",
"attackComplexity": "LOW",
"attackRequirements": "NONE",
"attackVector": "NETWORK",
"baseScore": 4.8,
"baseSeverity": "MEDIUM",
"privilegesRequired": "LOW",
"providerUrgency": "NOT_DEFINED",
"subAvailabilityImpact": "NONE",
"subConfidentialityImpact": "LOW",
"subIntegrityImpact": "LOW",
"userInteraction": "ACTIVE",
"valueDensity": "NOT_DEFINED",
"vectorString": "CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:A/VC:N/VI:N/VA:N/SC:L/SI:L/SA:N",
"version": "4.0",
"vulnAvailabilityImpact": "NONE",
"vulnConfidentialityImpact": "NONE",
"vulnIntegrityImpact": "NONE",
"vulnerabilityResponseEffort": "NOT_DEFINED"
},
"format": "CVSS",
"scenarios": [
{
"lang": "en",
"value": "GENERAL"
}
]
},
{
"format": "SSVC",
"other": {
"content": {
"options": [
{
"Exploitation": "none"
},
{
"Automatable": "yes"
},
{
"Technical Impact": "partial"
}
],
"role": "Supplier",
"timestamp": "2026-10-19T09:01:35Z",
"version": "2.0.3"
},
"type": "SSVC"
},
"scenarios": [
{
"lang": "en",
"value": "GENERAL"
}
]
}
],
"problemTypes": [
{
"descriptions": [
{
"cweId": "CWE-74",
"description": "CWE-74 Improper Neutralization of Special Elements in Output Used by a Downstream Component",
"lang": "en",
"type": "CWE"
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-10-19T09:15:47.453Z",
"orgId": "5a6e4751-2f3f-4070-9419-94fb35b644e8",
"shortName": "CIRCL"
},
"references": [
{
"name": "Security patch",
"tags": [
"patch"
],
"url": "https://github.com/MISP/MISP/commit/91323b517"
}
],
"solutions": [
{
"lang": "en",
"supportingMedia": [
{
"base64": false,
"type": "text/html",
"value": "\u003cp\u003eThe fix introduces strict validation of the tag colour value before it is rendered into a CSS style attribute. Only values matching a valid six-digit hexadecimal colour pattern (e.g. #aabbcc) are accepted; any other value is replaced with a safe default (#ffffff). This prevents arbitrary CSS from being injected through the colour field, aligning the remote tag handling with the validation already applied to local tags.\u003c/p\u003e"
}
],
"value": "The fix introduces strict validation of the tag colour value before it is rendered into a CSS style attribute. Only values matching a valid six-digit hexadecimal colour pattern (e.g. #aabbcc) are accepted; any other value is replaced with a safe default (#ffffff). This prevents arbitrary CSS from being injected through the colour field, aligning the remote tag handling with the validation already applied to local tags."
}
],
"title": "MISP CSS Injection via Remote Tag Colour in Event Preview",
"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 affected version boundary is inferred from the tag_version_boundary metadata (v2.5.48, 27 commits after fix); the exact first affected version is not stated in the patch.",
"PR:L assumes that creating or modifying a tag on a linked MISP server requires only low-level user privileges; the exact permission model was not verified from the patch.",
"SC:L assumes CSS injection could enable limited client-side information disclosure (e.g., via CSS selectors or layout manipulation); full XSS or data exfiltration is not evidenced.",
"CAPEC-66 is the closest available mapping; no CAPEC specifically models CSS injection via trusted inter-instance data, so this mapping carries uncertainty.",
"The commit message states the issue was found during internal review and not externally reported; no external finder or reporter is credited.",
"The Co-Authored-By line references an AI tool (Claude Opus 5.5); it is credited as a tool rather than a human remediation developer."
],
"capecRationale": [
{
"capecId": "CAPEC-66",
"rationale": "The attack exploits the inherent trust between linked MISP instances. The local instance accepts and renders data (tag colours) from a remote linked server without sufficient validation, assuming the data is well-formed. The attacker leverages this trusted relationship to inject CSS. This is the closest CAPEC; no CAPEC specifically models CSS injection via trusted data sources, so CAPEC-66 is the best available match."
}
],
"commit": "91323b517bb5a34f413363faf8703a3c0a1a9904",
"confidence": "medium",
"credits": [
{
"lang": "en",
"type": "remediation developer",
"value": "iglocska"
},
{
"lang": "en",
"type": "remediation developer",
"value": "Claude Opus 5.5 (1M context)"
}
],
"cvssRationale": "AV:N \u2013 the attack originates from a remote linked MISP server over the network. AC:L \u2013 no race conditions or special timing; simply setting a tag colour suffices. AT:N \u2013 no manipulation of the attack target is required. PR:L \u2013 the attacker needs low-privilege access (tag creation) on the linked server. UI:A \u2013 the victim must actively navigate to the event preview page. VC:N \u2013 no direct confidentiality loss on the vulnerable system. VI:N \u2013 no integrity impact on the vulnerable system\u0027s data. VA:N \u2013 no availability impact. SC:L \u2013 CSS injection may allow limited information disclosure on the client (e.g., reading page structure via CSS selectors or side channels). SI:L \u2013 the attacker can modify the visual presentation of the preview page (UI manipulation, overlay, spoofing). SA:N \u2013 no security authority impact.",
"fixSummary": "The fix introduces strict validation of the tag colour value before it is rendered into a CSS style attribute. Only values matching a valid six-digit hexadecimal colour pattern (e.g. #aabbcc) are accepted; any other value is replaced with a safe default (#ffffff). This prevents arbitrary CSS from being injected through the colour field, aligning the remote tag handling with the validation already applied to local tags.",
"generatedAt": "2026-10-19T09:01:35.918427Z",
"generator": "patch2vuln.py",
"model": "qwen3.8:27b",
"modelComparison": {
"rankings": [
{
"agreementScore": 11,
"assumptionCount": 6,
"confidence": "medium",
"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": "8be436940ffd0e21b7145fcb604ebfb0b529f6bbac717ee5cdf38c2e0dc2904e",
"patchSummary": "In app/View/Servers/preview_event.ctp, a regex check (preg_match against /^#[0-9a-f]{6}$/i) is added before the tag colour is used. If the colour does not match the hex pattern, it defaults to #ffffff. The validated $colour variable replaces the raw $tag[\u0027colour\u0027] in both the background-color style property and the getTextColour() call, eliminating the untrusted value from the CSS context.",
"patchTruncated": false,
"patches": [
{
"commit": "91323b517bb5a34f413363faf8703a3c0a1a9904",
"date": "Thu, 24 Sep 2026 23:54:30 +0200",
"patchSha256": "8be436940ffd0e21b7145fcb604ebfb0b529f6bbac717ee5cdf38c2e0dc2904e",
"source": "https://github.com/MISP/MISP/commit/91323b517.patch",
"sourceUrl": "https://github.com/MISP/MISP/commit/91323b517.patch",
"subject": "fix: [sync] Only use a valid colour for remote tags in the"
}
],
"source": "https://github.com/MISP/MISP/commit/91323b517.patch",
"ssvc": {
"options": [
{
"Exploitation": "none"
},
{
"Automatable": "yes"
},
{
"Technical Impact": "partial"
}
],
"role": "Supplier",
"timestamp": "2026-10-19T09:01:35Z",
"version": "2.0.3"
},
"subject": "fix: [sync] Only use a valid colour for remote tags in the",
"tagVersionBoundary": {
"commits_after_fix": 27,
"repository": "https://github.com/MISP/MISP",
"tag": "v2.5.48",
"version": "2.5.48",
"version_type": "semver"
},
"weaknessRationale": [
{
"cweId": "CWE-74",
"rationale": "The tag colour value is not neutralized for the CSS context in which it is placed. HTML entity encoding (h()) does not sanitize CSS metacharacters such as semicolons, colons, or function calls, allowing CSS injection. CWE-74 is the most precise parent weakness covering injection into a downstream component (CSS) without a more specific child CWE for CSS injection."
}
]
}
},
"bcp-05-x-03": {
"x_timeline": {
"events": [
{
"description": "Corrective change authored (91323b517bb5a34f413363faf8703a3c0a1a9904): fix: [sync] Only use a valid colour for remote tags in the",
"id": "evt-fix-developed-1",
"references": [
"https://github.com/MISP/MISP/commit/91323b517.patch"
],
"timestamp": "2026-09-24T21:54:30Z",
"type": "fix-developed"
}
]
}
}
},
"recordType": "advisory",
"vulnId": "GCVE-1-2026-20339"
}
]
}
},
"cveMetadata": {
"assignerOrgId": "5a6e4751-2f3f-4070-9419-94fb35b644e8",
"assignerShortName": "CIRCL",
"cveId": "CVE-2026-112183",
"datePublished": "2026-10-19T09:15:47.453Z",
"dateReserved": "2026-10-19T09:15:45.556Z",
"dateUpdated": "2026-10-19T17:15:45.687Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
}
}
Drag nodes to arrange them. Double-click a related vulnerability to open it, or a source to visit its link. The Physics button on the left tunes the layout and the simulation; the legend at the bottom left hides or shows nodes by kind and by sighting type.
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.
Vulnerability timeline
Sightings and recorded dates, grouped by day · UTC
Loading timeline…
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.