Skip to main content

MISP EUVDEUVD-2026-89800

| CVE-2026-103321 HIGH
Cross-site Scripting (XSS) (CWE-79)
2026-09-30 CIRCL GHSA-w4mv-4x7w-vpvv
8.3
CVSS 4.0 · Vendor: CIRCL
View

Attack ChainAIDerived

Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain

  1. Access
    Authenticate as MISP user with event-graph rights
  2. Delivery
    Store crafted preview_img breaking out of src attribute
  3. Exploit
    Victim opens event graph and triggers preview popover
  4. Execution
    Injected JavaScript runs in victim session
  5. Impact
    Steal session tokens or act as victim

Vulnerability Assessment

Weakness
CWE
OWASP Top 10:2025
A05:2025 - Injection
ASVS 5.0
V1 - Encoding and Sanitization Output encoding, context-aware escaping
MITRE ATT&CK

2 techniques across 2 tactics: Initial Access, Execution

The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up.

Exploitation Conditions

Exploitation requires (1) an authenticated MISP account with permission to create or modify an event graph entry, so the attacker can store a malicious preview_img value in the EventGraph model, and (2) a second, victim user who opens that event graph and hovers to trigger the preview popover, at which point event-graph.js concatenates the stored value directly into an img src attribute and executes injected script. It is specifically limited to instances running MISP versions prior to the fix commit applied after v2.5.48; the required prior authentication (PR:L) and mandatory victim interaction (UI:P) are the principal factors limiting real-world exploitation, making internet-exposed multi-user MISP deployments the realistic risk surface.

Impact

This is a genuine but bounded stored-XSS risk. The vendor CVSS 4.0 vector (CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:P/VC:N/VI:H/VA:N/SC:H/SI:H/SA:N, 8.3 High) drives its score from a scope change and high integrity impact on the subsequent system (the victim's authenticated browser session), which is standard for XSS that runs in another user's context. Two mitigating signals temper the raw score: PR:L means the attacker must already hold an authenticated MISP account with rights to create/modify an event graph entry, and UI:P means a second privileged victim must actually open the event graph and trigger the preview popover. There is no EPSS score, no CISA KEV listing, and no public proof-of-concept in the provided data - so this is no public exploit identified at time of analysis, not active exploitation. The fix is confirmed by a real vendor commit (MISP/MISP@92c7ccc43) that both adds server-side base64-PNG validation and switches the client from string concatenation to jQuery .prop('src'), so the root cause and patch are well-established. Net: a real, patchable issue worth prioritizing on internet-exposed or multi-tenant MISP instances, but not an unauthenticated drive-by - closer to a medium operational priority than the 8.3 headline suggests.

Exploit ScenarioDerived

An authenticated MISP user with event-graph edit rights stores a crafted preview_img value that breaks out of the img src attribute and injects script. When another MISP user later views that event graph and hovers to trigger the preview popover, the injected JavaScript executes in the victim's authenticated session, enabling theft of session cookies/tokens or actions performed as the victim. No public PoC or exploit code is identified in the provided data.

This Week Schedule remediation this week. Why: HIGH severity (CVSS 7.0-8.9).
Patch available 0.5% exploitation probability (EPSS)

Get an e-mail when this CVE is exploited, patched or re-scored. Free account.

Alert me

AnalysisAIv1 – Sep 30, 2026

Stored cross-site scripting in MISP's event graph preview lets an authenticated user who can create or modify an event graph entry persist a malicious preview_img value that executes in the browser of a second user who opens the graph and triggers the preview popover. The stored value is concatenated directly into an img src attribute in app/webroot/js/event-graph.js, so a crafted string can break out of the attribute context and inject arbitrary JavaScript in the MISP origin, enabling session/cookie theft or actions performed as the victim; exploitation is bounded by the required prior authentication (PR:L) and mandatory victim interaction, and no public exploit code or confirmed active exploitation was identified at time of analysis. Only MISP instances running versions prior to fix commit 92c7ccc43, which landed after v2.5.48, are affected, making internet-exposed multi-user deployments the realistic risk surface.

RemediationAI

Primary fix: upgrade MISP to a build that includes upstream commit 92c7ccc43 (any release after v2.5.48) per the patch reference https://github.com/MISP/MISP/commit/92c7ccc43 - this adds server-side validation that preview_img must be a base64-encoded PNG data URL and replaces the string-concatenated img src rendering with safe DOM property assignment in app/webroot/js/event-graph.js; the vendor indicates a patch is available. If immediate upgrade is not possible, backport the two changes manually or restrict creation/modification of event graph entries to fully trusted users (side effect: reduces collaborative graph editing for other analysts) and audit/clear any existing stored preview_img values, since patching only the model prevents new payloads but leaves previously stored malicious strings in the database. Deploying a Content-Security-Policy with a strict script-src can reduce the impact of injected inline script, but carries a real risk of breaking MISP's inline JavaScript and UI behavior and should be staged in a test instance first.

Affected VersionsENISA

MISP 0 <2.5.48

Affected Packages

euvd misp fix: 2.5.48

Source: OSV (Open Source Vulnerabilities)

Affects your stack

Affects 1 package in euvd

Checking this CVE against your own stacks and servers is part of the Basic plan and up.

Technical ContextAI · show details

CWE-79 (Improper Neutralization of Input During Web Page Generation, i.e., cross-site scripting) in the MISP event graph preview feature. The root cause is two-layered: first, the EventGraph model (app/Model/EventGraph.php) accepted the preview_img field and stored it without server-side validation, so an arbitrary string could be persisted; second, the client-side rendering in app/webroot/js/event-graph.js built the popover content by string concatenation into an HTML img element ('<img ... src="' + value + '" />'), so a value containing a quote could terminate the src attribute and inject markup/script that executes in the victim's browser within the MISP application context. The upstream fix addresses both layers: it adds a CakePHP custom validation rule restricting preview_img to a base64-encoded PNG data URL (regex ^data:image\/png;base64,[A-Za-z0-9+\/]*={0,2}$) and rewrites the two popover content functions to construct the image element with jQuery and assign the value via .prop('src', ...) instead of concatenating an HTML string. CPE data (cpe:2.3:a:misp:misp) confirms the affected product is the MISP platform itself rather than a plugin or third-party component; MISP is an open-source threat-intelligence sharing platform commonly deployed by CERTs, SOCs and sharing communities, where users often have multiple concurrent accounts and event graph data flows between participants, which is what makes a stored XSS in this origin meaningful even at the assessed low confidentiality/integrity impact (CVSS:3.1/AV:N/AC:L/PR:L/UI:R/S:C/C:L/I:L/A:N).

Know when Misp gets its next vulnerability

  • Watch products and get an email when something new is published
  • Check this CVE against your own stack and servers
  • Exploit and PoC references, threat intelligence from 22 sources

No credit card · 7-day full trial

Severity by source

Vendor (CIRCL) PRIMARY 8.3 HIGH
CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:P/VC:N/VI:H/VA:N/SC:H/SI:H/SA:N
vuln.today AI 5.4 MEDIUM

Authenticated attacker stores payload (PR:L) that runs only when a victim triggers the popover (UI:R); script executes cross-context in victim's session (S:C) yielding session/data theft (C:L/I:L).

3.1 AV:N/AC:L/PR:L/UI:R/S:C/C:L/I:L/A:N
4.0 AV:N/AC:L/AT:N/PR:L/UI:P/VC:L/VI:L/VA:N/SC:L/SI:L/SA:N

Primary rating from Vendor (CIRCL).

CVSS VectorVendor: CIRCL

Attack Vector
Network
Attack Complexity
Low
Attack Requirements
None
Privileges Required
Low
User Interaction
Passive
Vulnerable system: Confidentiality
None
Vulnerable system: Integrity
High
Vulnerable system: Availability
None
Subsequent system: Confidentiality
High
Subsequent system: Integrity
High
Subsequent system: Availability
None

DescriptionCVE.org

MISP contains a stored cross-site script (XSS) vulnerability in the event graph preview feature.

The event graph preview image field was accepted and stored without server-side validation. On the client side, the stored value was rendered into an HTML img element's src attribute via string concatenation, allowing a crafted value to break out of the attribute context and inject arbitrary script.

Preconditions:

  • An authenticated MISP user with the ability to create or modify an event graph entry.
  • A second user (the victim) who views the event graph and triggers the preview popover.

Impact:

  • Execution of arbitrary JavaScript in the victim's browser within the MISP application context.
  • Potential theft of session tokens, cookies, or sensitive data accessible to the victim's browser.
  • Potential for performing actions on behalf of the victim within the MISP application.

Affected: MISP versions prior to the fix (commit applied after v2.5.48).

Executive ViewAI

Why It Matters

A stored cross-site scripting vulnerability in MISP's event graph preview affects multi-user, internet-exposed threat-intelligence deployments running versions prior to fix commit 92c7ccc43, which landed after v2.5.48. An authenticated user who can create or edit a graph entry can persist malicious content that executes in the browser of any colleague who opens the graph preview, enabling session hijacking or actions carried out under the victim's identity. Because MISP concentrates sensitive indicators, sharing relationships, and analyst accounts, leadership should treat this as a credential-theft risk to the intelligence platform itself rather than an isolated scripting defect.

Business Impact: High
Compensating Controls

Apply vendor patch.

Threat Intelligence Overview

EPSS Score
0.5%
Top 61% exploitable
Prevalence
Medium
widely used threat-intel sharing platform in CERT/SOC community, not general enterprise
Data Quality
4 sources
Confidence: Medium

How this decision was reached

The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.

SignalValue
Severity HIGH
CISA KEV No
Public POC No
EPSS 0.5%
Patch available Yes
Active threat No
Deciding rule
HIGH severity (CVSS 7.0-8.9)
What every action level means
Emergency Immediate action required. Criteria: CRITICAL + in CISA KEV (actively exploited) without patch, OR CRITICAL + EPSS > 30% without patch, OR CRITICAL + active threat signals without patch.
Act Now Prioritize within 24-48h. Criteria: in KEV with patch available, OR CRITICAL + public POC, OR HIGH + EPSS > 10%, OR CRITICAL + active threat, OR any CRITICAL severity.
This Week Schedule remediation this week. Criteria: HIGH severity (CVSS 7.0-8.9). Patch within normal change window.
This Month Plan within 30 days. Criteria: MEDIUM severity (CVSS 4.0-6.9), lower exploitation probability. Include in regular patch cycle.
Monitor Track and reassess. Criteria: LOW severity (CVSS 0.1-3.9), minimal exploitation risk. No immediate action needed.

SSVC AssessmentENISA

SSVC Decision
Scheduled
Exploitation
None
System Exposure· derived
Open
Automatable
No
Human Impact
High
Technical Impact
Partial

Priority Score

42
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +42
PoC: 0
Weaponized: 0
Threat intel: 0
Gov advisory: 0

Attack Technique

Cross-Site Scripting occurs when an application accepts untrusted data and sends it to a web browser without proper validation or encoding.

Information disclosure occurs when an application unintentionally exposes sensitive data that aids attackers in reconnaissance or directly compromises security.

More in Misp

View all
CVE-2018-19908 HIGH POC
8.8 Dec 06

An issue was discovered in MISP 2.4.9x before 2.4.99. Rated high severity (CVSS 8.8), this vulnerability is remotely exp

CVE-2022-29528 CRITICAL POC
9.8 Apr 20

An issue was discovered in MISP before 2.4.158. Rated critical severity (CVSS 9.8), this vulnerability is remotely explo

CVE-2022-48328 CRITICAL POC
9.8 Feb 20

app/Controller/Component/IndexFilterComponent.php in MISP before 2.4.167 mishandles ordered_url_params and additional_de

CVE-2026-44381 CRITICAL POC
9.3 May 13

SQL injection in MISP threat intelligence platform versions prior to 2.5.37 allows remote unauthenticated attackers to m

CVE-2022-29534 HIGH POC
7.5 Apr 20

An issue was discovered in MISP before 2.4.158. Rated high severity (CVSS 7.5), this vulnerability is remotely exploitab

CVE-2023-37306 HIGH POC
7.5 Jun 30

MISP 2.4.172 mishandles different certificate file extensions in server sync. Rated high severity (CVSS 7.5), this vulne

CVE-2021-41326 CRITICAL
9.8 Sep 17

In MISP before 2.4.148, app/Lib/Export/OpendataExport.php mishandles parameter data that is used in a shell_exec call. R

CVE-2018-12649 CRITICAL
9.8 Jun 22

An issue was discovered in app/Controller/UsersController.php in MISP 2.4.92. Rated critical severity (CVSS 9.8), this v

CVE-2020-15411 CRITICAL
9.8 Jun 30

An issue was discovered in MISP 2.4.128. Rated critical severity (CVSS 9.8), this vulnerability is remotely exploitable,

CVE-2020-29006 CRITICAL
9.8 Nov 24

MISP before 2.4.135 lacks an ACL check, related to app/Controller/GalaxyElementsController.php and app/Model/GalaxyEleme

CVE-2021-35502 CRITICAL
9.8 Jun 25

app/View/Elements/genericElements/IndexTable/Fields/generic_field.ctp in MISP 2.4.144 does not sanitize certain data rel

CVE-2021-39302 CRITICAL
9.8 Aug 19

MISP 2.4.148, in certain configurations, allows SQL injection via the app/Model/Log.php $conditions['org'] value. Rated

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy