CVE-2026-104900 (GCVE-0-2026-104900)
Vulnerability from cvelistv5 – Published: 2026-10-02 15:16 – Updated: 2026-10-02 16:15- CWE-79 - Improper Neutralization of Input During Web Page Generation ('Cross-site Scripting')
| URL | Tags |
|---|---|
| https://github.com/MISP/MISP/commit/2a2981a27 | 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-01 11:32 - Model
qwen3.8:27b- Input
-
https://github.com/MISP/MISP/commit/2a2981a27.patch
3c8a41f55b53… - Confidence
- medium
| Commit | Subject | Patch SHA-256 |
|---|---|---|
2a2981a27bd0
|
fix: [security] Escape the value of the count index field | 3c8a41f55b53… |
Fix summary
The vulnerability is remediated by applying HTML entity encoding to the count field value before it is rendered in the view template. This ensures that any HTML or script markup contained in the value from a remote server is neutralized and displayed as inert text rather than being interpreted by the browser.
Patch summary
In the CakePHP view template file app/View/Elements/genericElements/IndexTable/Fields/count.ctp, the assignment of $fieldValue was changed from a raw Hash::extract() call to one wrapped in the h() helper function (CakePHP's HTML-encoding utility). This single-line change ensures the extracted value is HTML-entity-encoded before being used in the template output, preventing injection of markup through the event identifier from a linked server.
CVSS rationale
AV:N - exploitation occurs over the network via a linked MISP server. AC:L - the attacker only needs to craft an event ID with HTML/JS; no race conditions or complex timing. AT:N - the malicious data is stored in the linked server; no active attack is needed at exploitation time. PR:L - the attacker needs low-privilege access to a linked MISP server to create/modify an event. UI:N - the victim only needs to view the remote event preview index page; no special interaction. VC/VI/VA:N - no direct impact on the MISP server's own confidentiality, integrity, or availability. SC:L - XSS allows reading some data (cookies, DOM) in the victim's browser. SI:L - attacker can modify what the victim sees in the browser. SA:N - no impact on security authority of the victim's system.
Weakness rationale
- CWE-79 The patch adds HTML encoding (h() function) to a value that was previously rendered raw in an HTML context. The commit message explicitly states the value was printed raw, allowing markup injection. This is a textbook stored/reflected XSS due to missing output encoding.
Attack pattern rationale
- CAPEC-1 The attack pattern involves injecting script or markup into a web page through a data field (event ID from a linked server) that is rendered without encoding. CAPEC-1 is the closest standard mapping for XSS via untrusted data rendered in a browser context. The specific vector here is a linked MISP server supplying crafted data, which is a variant of the general XSS injection pattern. No more specific CAPEC precisely captures the 'trusted remote server as injection vector' nuance, so CAPEC-1 is the best available match.
Assumptions to verify
- The affected version boundary is inferred from the nearest tag v2.5.48 with 31 commits after the fix; the exact last affected version is not explicitly stated in the patch.
- PR:L assumes the attacker needs at least low-privilege access to a linked MISP server to create or modify an event; if no authentication is required on the linked server, PR could be None.
- The CAPEC-1 mapping is the closest standard pattern; no CAPEC specifically covers 'XSS via data from a trusted remote server' as a distinct pattern.
- The Co-Authored-By line references an AI assistant (Claude Opus 5.5); it is listed as a tool credit rather than a human remediation developer.
- The commit date (24 Sep 2026) is in the future relative to typical CVE timelines; this is taken at face value from the patch metadata.
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 |
7 | 11 | medium | 5 |
- 2026-09-24 20:20 UTC Fix developed Corrective change authored (2a2981a27bd06bfd6fa37866db1911637d52538c): fix: [security] Escape the value of the count index field https://github.com/MISP/MISP/commit/2a2981a27.patch
{
"containers": {
"adp": [
{
"metrics": [
{
"other": {
"content": {
"id": "CVE-2026-104900",
"options": [
{
"Exploitation": "none"
},
{
"Automatable": "no"
},
{
"Technical Impact": "partial"
}
],
"role": "CISA Coordinator",
"timestamp": "2026-10-02T16:14:50.253586Z",
"version": "2.0.3"
},
"type": "ssvc"
}
}
],
"providerMetadata": {
"dateUpdated": "2026-10-02T16:15:09.284Z",
"orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
"shortName": "CISA-ADP"
},
"title": "CISA ADP Vulnrichment"
}
],
"cna": {
"affected": [
{
"cpes": [
"cpe:2.3:a:misp:misp:*:*:*:*:*:*:*:*"
],
"modules": [
"Remote Event Preview Index Table (count field)"
],
"product": "MISP",
"programFiles": [
"app/View/Elements/genericElements/IndexTable/Fields/count.ctp"
],
"repo": "https://github.com/MISP/MISP",
"vendor": "MISP",
"versions": [
{
"lessThan": "2.5.48",
"status": "affected",
"version": "0",
"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 5.5 (1M context)"
}
],
"descriptions": [
{
"lang": "en",
"supportingMedia": [
{
"base64": false,
"type": "text/html",
"value": "\u003cp\u003eMISP contains a stored cross-site scripting (XSS) vulnerability in the index table rendering of the remote event preview. The count field template escaped the associated link URL but rendered the field value without HTML encoding. An attacker with the ability to create or modify events on a linked (remote) MISP server could craft an event identifier containing HTML or JavaScript markup. When a user on the local MISP instance views the remote event preview index, the unescaped value is rendered directly in the browser, allowing arbitrary script execution in the victim\u0027s session.\u003c/p\u003e\u003cp\u003ePreconditions:\u003c/p\u003e\u003cp\u003e- A linked/remote MISP server is configured and connected to the local instance.\u003c/p\u003e\u003cp\u003e- The attacker has sufficient access on the linked server to create or modify an event with a crafted identifier.\u003c/p\u003e\u003cp\u003e- A victim user on the local instance views the remote event preview index page.\u003c/p\u003e\u003cp\u003eImpact:\u003c/p\u003e\u003cp\u003e- Execution of arbitrary JavaScript in the context of the MISP web application.\u003c/p\u003e\u003cp\u003e- Potential session hijacking, data exfiltration, or unauthorized actions performed on behalf of the authenticated user.\u003c/p\u003e\u003cp\u003eAffected versions: \u0026lt;2.5.48.\u003c/p\u003e"
}
],
"value": "MISP contains a stored cross-site scripting (XSS) vulnerability in the index table rendering of the remote event preview. The count field template escaped the associated link URL but rendered the field value without HTML encoding. An attacker with the ability to create or modify events on a linked (remote) MISP server could craft an event identifier containing HTML or JavaScript markup. When a user on the local MISP instance views the remote event preview index, the unescaped value is rendered directly in the browser, allowing arbitrary script execution in the victim\u0027s session.\n\nPreconditions:\n\n- A linked/remote MISP server is configured and connected to the local instance.\n\n- The attacker has sufficient access on the linked server to create or modify an event with a crafted identifier.\n\n- A victim user on the local instance views the remote event preview index page.\n\nImpact:\n\n- Execution of arbitrary JavaScript in the context of the MISP web application.\n\n- Potential session hijacking, data exfiltration, or unauthorized actions performed on behalf of the authenticated user.\n\nAffected versions: \u003c2.5.48."
}
],
"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.3,
"baseSeverity": "MEDIUM",
"privilegesRequired": "LOW",
"providerUrgency": "NOT_DEFINED",
"subAvailabilityImpact": "NONE",
"subConfidentialityImpact": "LOW",
"subIntegrityImpact": "LOW",
"userInteraction": "NONE",
"valueDensity": "NOT_DEFINED",
"vectorString": "CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:N/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-01T11:32:45Z",
"version": "2.0.3"
},
"type": "SSVC"
},
"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": {
"dateUpdated": "2026-10-02T15:16:27.485Z",
"orgId": "5a6e4751-2f3f-4070-9419-94fb35b644e8",
"shortName": "CIRCL"
},
"references": [
{
"name": "Security patch",
"tags": [
"patch"
],
"url": "https://github.com/MISP/MISP/commit/2a2981a27"
}
],
"solutions": [
{
"lang": "en",
"supportingMedia": [
{
"base64": false,
"type": "text/html",
"value": "\u003cp\u003eThe vulnerability is remediated by applying HTML entity encoding to the count field value before it is rendered in the view template. This ensures that any HTML or script markup contained in the value from a remote server is neutralized and displayed as inert text rather than being interpreted by the browser.\u003c/p\u003e"
}
],
"value": "The vulnerability is remediated by applying HTML entity encoding to the count field value before it is rendered in the view template. This ensures that any HTML or script markup contained in the value from a remote server is neutralized and displayed as inert text rather than being interpreted by the browser."
}
],
"title": "MISP Stored XSS via Unescaped Count Field Value in Remote Event Preview Index",
"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 nearest tag v2.5.48 with 31 commits after the fix; the exact last affected version is not explicitly stated in the patch.",
"PR:L assumes the attacker needs at least low-privilege access to a linked MISP server to create or modify an event; if no authentication is required on the linked server, PR could be None.",
"The CAPEC-1 mapping is the closest standard pattern; no CAPEC specifically covers \u0027XSS via data from a trusted remote server\u0027 as a distinct pattern.",
"The Co-Authored-By line references an AI assistant (Claude Opus 5.5); it is listed as a tool credit rather than a human remediation developer.",
"The commit date (24 Sep 2026) is in the future relative to typical CVE timelines; this is taken at face value from the patch metadata."
],
"capecRationale": [
{
"capecId": "CAPEC-1",
"rationale": "The attack pattern involves injecting script or markup into a web page through a data field (event ID from a linked server) that is rendered without encoding. CAPEC-1 is the closest standard mapping for XSS via untrusted data rendered in a browser context. The specific vector here is a linked MISP server supplying crafted data, which is a variant of the general XSS injection pattern. No more specific CAPEC precisely captures the \u0027trusted remote server as injection vector\u0027 nuance, so CAPEC-1 is the best available match."
}
],
"commit": "2a2981a27bd06bfd6fa37866db1911637d52538c",
"confidence": "medium",
"credits": [
{
"lang": "en",
"type": "reporter",
"value": "Jeroen Pinoy"
},
{
"lang": "en",
"type": "remediation developer",
"value": "iglocska"
},
{
"lang": "en",
"type": "remediation developer",
"value": "Claude Opus 5.5 (1M context)"
}
],
"cvssRationale": "AV:N - exploitation occurs over the network via a linked MISP server. AC:L - the attacker only needs to craft an event ID with HTML/JS; no race conditions or complex timing. AT:N - the malicious data is stored in the linked server; no active attack is needed at exploitation time. PR:L - the attacker needs low-privilege access to a linked MISP server to create/modify an event. UI:N - the victim only needs to view the remote event preview index page; no special interaction. VC/VI/VA:N - no direct impact on the MISP server\u0027s own confidentiality, integrity, or availability. SC:L - XSS allows reading some data (cookies, DOM) in the victim\u0027s browser. SI:L - attacker can modify what the victim sees in the browser. SA:N - no impact on security authority of the victim\u0027s system.",
"fixSummary": "The vulnerability is remediated by applying HTML entity encoding to the count field value before it is rendered in the view template. This ensures that any HTML or script markup contained in the value from a remote server is neutralized and displayed as inert text rather than being interpreted by the browser.",
"generatedAt": "2026-10-01T11:32:45.636394Z",
"generator": "patch2vuln.py",
"model": "qwen3.8:27b",
"modelComparison": {
"rankings": [
{
"agreementScore": 11,
"assumptionCount": 5,
"confidence": "medium",
"model": "qwen3.8:27b",
"score": 7
}
],
"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": "3c8a41f55b536b1beaab7797cf106c1ef8f72ec83417cf60660c60171f939a5e",
"patchSummary": "In the CakePHP view template file app/View/Elements/genericElements/IndexTable/Fields/count.ctp, the assignment of $fieldValue was changed from a raw Hash::extract() call to one wrapped in the h() helper function (CakePHP\u0027s HTML-encoding utility). This single-line change ensures the extracted value is HTML-entity-encoded before being used in the template output, preventing injection of markup through the event identifier from a linked server.",
"patchTruncated": false,
"patches": [
{
"commit": "2a2981a27bd06bfd6fa37866db1911637d52538c",
"date": "Thu, 24 Sep 2026 22:20:05 +0200",
"patchSha256": "3c8a41f55b536b1beaab7797cf106c1ef8f72ec83417cf60660c60171f939a5e",
"source": "https://github.com/MISP/MISP/commit/2a2981a27.patch",
"sourceUrl": "https://github.com/MISP/MISP/commit/2a2981a27.patch",
"subject": "fix: [security] Escape the value of the count index field"
}
],
"source": "https://github.com/MISP/MISP/commit/2a2981a27.patch",
"ssvc": {
"options": [
{
"Exploitation": "none"
},
{
"Automatable": "yes"
},
{
"Technical Impact": "partial"
}
],
"role": "Supplier",
"timestamp": "2026-10-01T11:32:45Z",
"version": "2.0.3"
},
"subject": "fix: [security] Escape the value of the count index field",
"tagVersionBoundary": {
"commits_after_fix": 31,
"repository": "https://github.com/MISP/MISP",
"tag": "v2.5.48",
"version": "2.5.48",
"version_type": "semver"
},
"weaknessRationale": [
{
"cweId": "CWE-79",
"rationale": "The patch adds HTML encoding (h() function) to a value that was previously rendered raw in an HTML context. The commit message explicitly states the value was printed raw, allowing markup injection. This is a textbook stored/reflected XSS due to missing output encoding."
}
]
}
},
"bcp-05-x-03": {
"x_timeline": {
"events": [
{
"description": "Corrective change authored (2a2981a27bd06bfd6fa37866db1911637d52538c): fix: [security] Escape the value of the count index field",
"id": "evt-fix-developed-1",
"references": [
"https://github.com/MISP/MISP/commit/2a2981a27.patch"
],
"timestamp": "2026-09-24T20:20:05Z",
"type": "fix-developed"
}
]
}
}
},
"recordType": "advisory",
"vulnId": "GCVE-1-2026-20230"
}
]
}
},
"cveMetadata": {
"assignerOrgId": "5a6e4751-2f3f-4070-9419-94fb35b644e8",
"assignerShortName": "CIRCL",
"cveId": "CVE-2026-104900",
"datePublished": "2026-10-02T15:16:27.485Z",
"dateReserved": "2026-10-02T15:16:25.316Z",
"dateUpdated": "2026-10-02T16:15:09.284Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2",
"vulnerability-lookup:meta": {
"nvd": {
"cve": {
"affected": [
{
"affectedData": [
{
"cpes": [
"cpe:2.3:a:misp:misp:*:*:*:*:*:*:*:*"
],
"modules": [
"Remote Event Preview Index Table (count field)"
],
"product": "MISP",
"programFiles": [
"app/View/Elements/genericElements/IndexTable/Fields/count.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 stored cross-site scripting (XSS) vulnerability in the index table rendering of the remote event preview. The count field template escaped the associated link URL but rendered the field value without HTML encoding. An attacker with the ability to create or modify events on a linked (remote) MISP server could craft an event identifier containing HTML or JavaScript markup. When a user on the local MISP instance views the remote event preview index, the unescaped value is rendered directly in the browser, allowing arbitrary script execution in the victim\u0027s session.\n\nPreconditions:\n\n- A linked/remote MISP server is configured and connected to the local instance.\n\n- The attacker has sufficient access on the linked server to create or modify an event with a crafted identifier.\n\n- A victim user on the local instance views the remote event preview index page.\n\nImpact:\n\n- Execution of arbitrary JavaScript in the context of the MISP web application.\n\n- Potential session hijacking, data exfiltration, or unauthorized actions performed on behalf of the authenticated user.\n\nAffected versions: \u003c2.5.48."
}
],
"id": "CVE-2026-104900",
"lastModified": "2026-10-02T17:17:04.223",
"metrics": {
"cvssMetricV40": [
{
"cvssData": {
"Automatable": "NOT_DEFINED",
"Recovery": "NOT_DEFINED",
"Safety": "NOT_DEFINED",
"attackComplexity": "LOW",
"attackRequirements": "NONE",
"attackVector": "NETWORK",
"availabilityRequirement": "NOT_DEFINED",
"baseScore": 5.3,
"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": "NONE",
"valueDensity": "NOT_DEFINED",
"vectorString": "CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:N/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-01T11:32:45Z",
"version": "2.0.3"
}
},
{
"source": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
"ssvcData": {
"id": "CVE-2026-104900",
"options": [
{
"exploitation": "none"
},
{
"automatable": "no"
},
{
"technicalImpact": "partial"
}
],
"role": "CISA Coordinator",
"timestamp": "2026-10-02T16:14:50.253586Z",
"version": "2.0.3"
}
}
]
},
"published": "2026-10-02T16:16:47.573",
"references": [
{
"source": "5a6e4751-2f3f-4070-9419-94fb35b644e8",
"url": "https://github.com/MISP/MISP/commit/2a2981a27"
}
],
"sourceIdentifier": "5a6e4751-2f3f-4070-9419-94fb35b644e8",
"vulnStatus": "Deferred",
"weaknesses": [
{
"description": [
{
"lang": "en",
"value": "CWE-79"
}
],
"source": "5a6e4751-2f3f-4070-9419-94fb35b644e8",
"type": "Secondary"
}
]
}
},
"vulnrichment": {
"containers": {
"adp": [
{
"metrics": [
{
"other": {
"content": {
"id": "CVE-2026-104900",
"options": [
{
"Exploitation": "none"
},
{
"Automatable": "no"
},
{
"Technical Impact": "partial"
}
],
"role": "CISA Coordinator",
"timestamp": "2026-10-02T16:14:50.253586Z",
"version": "2.0.3"
},
"type": "ssvc"
}
}
],
"providerMetadata": {
"dateUpdated": "2026-10-02T16:14:58.707Z",
"orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
"shortName": "CISA-ADP"
},
"title": "CISA ADP Vulnrichment"
}
],
"cna": {
"affected": [
{
"cpes": [
"cpe:2.3:a:misp:misp:*:*:*:*:*:*:*:*"
],
"modules": [
"Remote Event Preview Index Table (count field)"
],
"product": "MISP",
"programFiles": [
"app/View/Elements/genericElements/IndexTable/Fields/count.ctp"
],
"repo": "https://github.com/MISP/MISP",
"vendor": "MISP",
"versions": [
{
"lessThan": "2.5.48",
"status": "affected",
"version": "0",
"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 5.5 (1M context)"
}
],
"descriptions": [
{
"lang": "en",
"supportingMedia": [
{
"base64": false,
"type": "text/html",
"value": "\u003cp\u003eMISP contains a stored cross-site scripting (XSS) vulnerability in the index table rendering of the remote event preview. The count field template escaped the associated link URL but rendered the field value without HTML encoding. An attacker with the ability to create or modify events on a linked (remote) MISP server could craft an event identifier containing HTML or JavaScript markup. When a user on the local MISP instance views the remote event preview index, the unescaped value is rendered directly in the browser, allowing arbitrary script execution in the victim\u0027s session.\u003c/p\u003e\u003cp\u003ePreconditions:\u003c/p\u003e\u003cp\u003e- A linked/remote MISP server is configured and connected to the local instance.\u003c/p\u003e\u003cp\u003e- The attacker has sufficient access on the linked server to create or modify an event with a crafted identifier.\u003c/p\u003e\u003cp\u003e- A victim user on the local instance views the remote event preview index page.\u003c/p\u003e\u003cp\u003eImpact:\u003c/p\u003e\u003cp\u003e- Execution of arbitrary JavaScript in the context of the MISP web application.\u003c/p\u003e\u003cp\u003e- Potential session hijacking, data exfiltration, or unauthorized actions performed on behalf of the authenticated user.\u003c/p\u003e\u003cp\u003eAffected versions: \u0026lt;2.5.48.\u003c/p\u003e"
}
],
"value": "MISP contains a stored cross-site scripting (XSS) vulnerability in the index table rendering of the remote event preview. The count field template escaped the associated link URL but rendered the field value without HTML encoding. An attacker with the ability to create or modify events on a linked (remote) MISP server could craft an event identifier containing HTML or JavaScript markup. When a user on the local MISP instance views the remote event preview index, the unescaped value is rendered directly in the browser, allowing arbitrary script execution in the victim\u0027s session.\n\nPreconditions:\n\n- A linked/remote MISP server is configured and connected to the local instance.\n\n- The attacker has sufficient access on the linked server to create or modify an event with a crafted identifier.\n\n- A victim user on the local instance views the remote event preview index page.\n\nImpact:\n\n- Execution of arbitrary JavaScript in the context of the MISP web application.\n\n- Potential session hijacking, data exfiltration, or unauthorized actions performed on behalf of the authenticated user.\n\nAffected versions: \u003c2.5.48."
}
],
"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.3,
"baseSeverity": "MEDIUM",
"privilegesRequired": "LOW",
"providerUrgency": "NOT_DEFINED",
"subAvailabilityImpact": "NONE",
"subConfidentialityImpact": "LOW",
"subIntegrityImpact": "LOW",
"userInteraction": "NONE",
"valueDensity": "NOT_DEFINED",
"vectorString": "CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:N/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-01T11:32:45Z",
"version": "2.0.3"
},
"type": "SSVC"
},
"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": {
"dateUpdated": "2026-10-02T15:16:27.485Z",
"orgId": "5a6e4751-2f3f-4070-9419-94fb35b644e8",
"shortName": "CIRCL"
},
"references": [
{
"name": "Security patch",
"tags": [
"patch"
],
"url": "https://github.com/MISP/MISP/commit/2a2981a27"
}
],
"solutions": [
{
"lang": "en",
"supportingMedia": [
{
"base64": false,
"type": "text/html",
"value": "\u003cp\u003eThe vulnerability is remediated by applying HTML entity encoding to the count field value before it is rendered in the view template. This ensures that any HTML or script markup contained in the value from a remote server is neutralized and displayed as inert text rather than being interpreted by the browser.\u003c/p\u003e"
}
],
"value": "The vulnerability is remediated by applying HTML entity encoding to the count field value before it is rendered in the view template. This ensures that any HTML or script markup contained in the value from a remote server is neutralized and displayed as inert text rather than being interpreted by the browser."
}
],
"title": "MISP Stored XSS via Unescaped Count Field Value in Remote Event Preview Index",
"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 nearest tag v2.5.48 with 31 commits after the fix; the exact last affected version is not explicitly stated in the patch.",
"PR:L assumes the attacker needs at least low-privilege access to a linked MISP server to create or modify an event; if no authentication is required on the linked server, PR could be None.",
"The CAPEC-1 mapping is the closest standard pattern; no CAPEC specifically covers \u0027XSS via data from a trusted remote server\u0027 as a distinct pattern.",
"The Co-Authored-By line references an AI assistant (Claude Opus 5.5); it is listed as a tool credit rather than a human remediation developer.",
"The commit date (24 Sep 2026) is in the future relative to typical CVE timelines; this is taken at face value from the patch metadata."
],
"capecRationale": [
{
"capecId": "CAPEC-1",
"rationale": "The attack pattern involves injecting script or markup into a web page through a data field (event ID from a linked server) that is rendered without encoding. CAPEC-1 is the closest standard mapping for XSS via untrusted data rendered in a browser context. The specific vector here is a linked MISP server supplying crafted data, which is a variant of the general XSS injection pattern. No more specific CAPEC precisely captures the \u0027trusted remote server as injection vector\u0027 nuance, so CAPEC-1 is the best available match."
}
],
"commit": "2a2981a27bd06bfd6fa37866db1911637d52538c",
"confidence": "medium",
"credits": [
{
"lang": "en",
"type": "reporter",
"value": "Jeroen Pinoy"
},
{
"lang": "en",
"type": "remediation developer",
"value": "iglocska"
},
{
"lang": "en",
"type": "remediation developer",
"value": "Claude Opus 5.5 (1M context)"
}
],
"cvssRationale": "AV:N - exploitation occurs over the network via a linked MISP server. AC:L - the attacker only needs to craft an event ID with HTML/JS; no race conditions or complex timing. AT:N - the malicious data is stored in the linked server; no active attack is needed at exploitation time. PR:L - the attacker needs low-privilege access to a linked MISP server to create/modify an event. UI:N - the victim only needs to view the remote event preview index page; no special interaction. VC/VI/VA:N - no direct impact on the MISP server\u0027s own confidentiality, integrity, or availability. SC:L - XSS allows reading some data (cookies, DOM) in the victim\u0027s browser. SI:L - attacker can modify what the victim sees in the browser. SA:N - no impact on security authority of the victim\u0027s system.",
"fixSummary": "The vulnerability is remediated by applying HTML entity encoding to the count field value before it is rendered in the view template. This ensures that any HTML or script markup contained in the value from a remote server is neutralized and displayed as inert text rather than being interpreted by the browser.",
"generatedAt": "2026-10-01T11:32:45.636394Z",
"generator": "patch2vuln.py",
"model": "qwen3.8:27b",
"modelComparison": {
"rankings": [
{
"agreementScore": 11,
"assumptionCount": 5,
"confidence": "medium",
"model": "qwen3.8:27b",
"score": 7
}
],
"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": "3c8a41f55b536b1beaab7797cf106c1ef8f72ec83417cf60660c60171f939a5e",
"patchSummary": "In the CakePHP view template file app/View/Elements/genericElements/IndexTable/Fields/count.ctp, the assignment of $fieldValue was changed from a raw Hash::extract() call to one wrapped in the h() helper function (CakePHP\u0027s HTML-encoding utility). This single-line change ensures the extracted value is HTML-entity-encoded before being used in the template output, preventing injection of markup through the event identifier from a linked server.",
"patchTruncated": false,
"patches": [
{
"commit": "2a2981a27bd06bfd6fa37866db1911637d52538c",
"date": "Thu, 24 Sep 2026 22:20:05 +0200",
"patchSha256": "3c8a41f55b536b1beaab7797cf106c1ef8f72ec83417cf60660c60171f939a5e",
"source": "https://github.com/MISP/MISP/commit/2a2981a27.patch",
"sourceUrl": "https://github.com/MISP/MISP/commit/2a2981a27.patch",
"subject": "fix: [security] Escape the value of the count index field"
}
],
"source": "https://github.com/MISP/MISP/commit/2a2981a27.patch",
"ssvc": {
"options": [
{
"Exploitation": "none"
},
{
"Automatable": "yes"
},
{
"Technical Impact": "partial"
}
],
"role": "Supplier",
"timestamp": "2026-10-01T11:32:45Z",
"version": "2.0.3"
},
"subject": "fix: [security] Escape the value of the count index field",
"tagVersionBoundary": {
"commits_after_fix": 31,
"repository": "https://github.com/MISP/MISP",
"tag": "v2.5.48",
"version": "2.5.48",
"version_type": "semver"
},
"weaknessRationale": [
{
"cweId": "CWE-79",
"rationale": "The patch adds HTML encoding (h() function) to a value that was previously rendered raw in an HTML context. The commit message explicitly states the value was printed raw, allowing markup injection. This is a textbook stored/reflected XSS due to missing output encoding."
}
]
}
},
"bcp-05-x-03": {
"x_timeline": {
"events": [
{
"description": "Corrective change authored (2a2981a27bd06bfd6fa37866db1911637d52538c): fix: [security] Escape the value of the count index field",
"id": "evt-fix-developed-1",
"references": [
"https://github.com/MISP/MISP/commit/2a2981a27.patch"
],
"timestamp": "2026-09-24T20:20:05Z",
"type": "fix-developed"
}
]
}
}
},
"recordType": "advisory",
"vulnId": "GCVE-1-2026-20230"
}
]
}
},
"cveMetadata": {
"assignerOrgId": "5a6e4751-2f3f-4070-9419-94fb35b644e8",
"assignerShortName": "CIRCL",
"cveId": "CVE-2026-104900",
"datePublished": "2026-10-02T15:16:27.485Z",
"dateReserved": "2026-10-02T15:16:25.316Z",
"dateUpdated": "2026-10-02T16:15:09.284Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
}
}
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.