CVE-2026-95661: MISP Reflected Cross-Site Scripting in Attribute Histogram via Unescaped URL-Supplied Type List
MISP contains a reflected cross-site scripting (XSS) vulnerability in the attribute histogram view. The $selectedTypes variable, which is derived from the URL path segment , was interpolated directly into a JavaScript array literal inside an onClick HTML attribute without any encoding or escaping. An attacker who can cause an authenticated MISP user to visit a crafted URL containing a malicious type value can execute arbitrary JavaScript in the victim's browser within the MISP application origin.
Successful exploitation allows the attacker to read session cookies, perform actions on behalf of the victim, or exfiltrate sensitive data accessible from the MISP interface.
The vulnerability requires the victim to be authenticated and to actively navigate to the attacker-supplied URL.
Affected Software
Remediation
Recommended actions to resolve this vulnerability, in priority order.
- Compensating control
Replace the raw PHP loop that concatenates URL-supplied type values into a JavaScript array literal with json_encode() using the JSON_HEX_TAG, JSON_HEX_APOS, JSON_HEX_QUOT, and JSON_HEX_AMP flags.
Event History
Frequently Asked Questions
Who is exposed to this issue?
Authenticated MISP users who can be induced to open an attacker-crafted attribute histogram URL are exposed. The injected JavaScript executes in the victim's browser under the MISP application origin.
What does an attacker need to exploit it?
The attacker needs to craft a URL with a malicious type value in the URL-supplied type list and convince an authenticated user to actively navigate to it. No attacker authentication or additional interaction beyond the victim opening the URL is described.
Are unauthenticated users affected?
The vulnerable URL may be reachable without attacker authentication, but successful exploitation requires the victim to be authenticated to MISP. The impact is limited to data and actions available through that victim's MISP session.
How can we tell whether we are affected?
Review the attribute histogram implementation for use of the URL-derived $selectedTypes value directly in a JavaScript array literal within an onClick HTML attribute without encoding or escaping. The referenced commit 95b8f21f6 provides the remediation point to compare against.