Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessAuthenticate to MISP with dashboard-edit rights
-
DeliveryPOST malicious javascript: URL via updateSettings() layout path
-
ExploitMalicious URL persisted without validation
-
ExecutionVictim loads dashboard with poisoned ButtonWidget
-
PersistRender/navigation path reaches stored URL without runtime check
-
ImpactJavaScript executes in victim's MISP session context
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 an authenticated MISP user (PR:L per CVSS) with permission to modify dashboard widget settings. The attacker must specifically use the |
| Impact | The CVSS 4.0 vector (AV:N/AC:L/AT:N/PR:L/UI:N/VC:L/VI:L/VA:N) scoring 5.3 is somewhat generous given the significant mitigating factor explicitly documented in the description: MISP's render-time validation already blocked known malicious values before presentation, meaning the stored payload had to survive two independent validation gates to cause harm. The real-world risk profile is that of a defense-in-depth gap - the persistence layer stored invalid state that the rendering layer would have neutralized in known code paths. An independent CVSS 3.1 assessment would rate this AC:H (the practical exploit path requires a rendering or navigation path that bypasses the existing runtime check) and UI:R (a victim must interact with the malicious button). EPSS data is not provided, but given no KEV listing and no public exploit code, exploitation probability is low. Even a mid-sized municipal IT team in sopot running MISP for community threat sharing should treat this as a routine patch-cycle item rather than an emergency. The requirement for an authenticated user with dashboard-edit permissions further constrains the attacker population to insiders or compromised accounts. No active exploitation is confirmed, no POC is publicly referenced, and the fix is available via upstream commit. |
| Exploit ScenarioDerived | An authenticated MISP user with dashboard-edit permissions uses the whole-layout |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Sep 03, 2026
Stored XSS in MISP's dashboard ButtonWidget allowed an authenticated user to persist arbitrary URLs - including javascript: scheme values - through the updateSettings() whole-layout save endpoint, which lacked the widget-config validation that updateWidgetSettings() already enforced. A malicious URL stored via this unguarded path could reach client-side rendering or navigation, potentially executing script in the victim's MISP browser session and enabling actions or data access at that user's privilege level. Practical exploitability was substantially reduced by MISP's existing render-time URL validation, making this a defense-in-depth persistence-layer gap rather than a confirmed end-to-end XSS bypass; no public exploit or active exploitation has been identified.
RemediationAI
Update MISP to a build that includes commit f04b10001 (https://github.com/MISP/MISP/commit/f04b10001); no specific tagged release version is confirmed in the available data, so track MISP's release notes or update directly from the main branch after that commit. The patch validates ButtonWidget URL configurations through both the updateSettings() and updateWidgetSettings() persistence paths using CanonicalTypeAdapter, rejecting javascript: schemes, external-origin URLs, malformed values, and non-string types at save time. As a compensating control pending upgrade, restrict dashboard-widget configuration permissions to trusted administrator accounts only, reducing the attacker population to high-privilege users who would already have broader MISP access. No workaround eliminates the persistence-layer gap short of the patch, but the existing render-time validation continues to neutralize stored malicious values during rendering.
Affected VersionsENISA
Affected Packages
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
MISP (Malware Information Sharing Platform) is an open-source threat-intelligence sharing platform maintained by CIRCL. Its dashboard framework supports configurable widgets - including ButtonWidget - whose settings are persisted via two separate controller paths in DashboardsController.php: updateWidgetSettings() for single-widget updates, and updateSettings() for whole-layout saves. Prior to the patch, only updateWidgetSettings() passed configs through CanonicalTypeAdapter::validate(), leaving updateSettings() as an unvalidated persistence path. ButtonWidget previously declared an empty $schema, meaning no field-level type constraints existed; the patch introduces a typed schema with url type for the URL field. CWE-79 (Improper Neutralization of Input During Web Page Generation) applies because attacker-controlled URL data could reach a rendering context without save-time sanitization. The fix in commit f04b10001 introduces a DashboardURLValidator class, adds a url canonical type to CanonicalTypeAdapter, refactors validation logic into a shared __validateWidgetConfig() private method called by both save paths, and restricts accepted URLs to absolute same-origin paths or full URLs matching the MISP instance origin - rejecting javascript:, external origins, malformed forms, and non-string values at save time.
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
CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:N/VC:L/VI:L/VA:N/SC:N/SI:N/SA:N
AC:H reflects existing render-time mitigations; PR:L for authenticated attacker; UI:R because victim must interact with the dashboard button; S:C for XSS scope change.
Primary rating from Vendor (CIRCL).
CVSS VectorVendor: CIRCL
DescriptionCVE.org
A persistent unsafe URL injection vulnerability exists in the MISP dashboard ButtonWidget configuration. Dashboard widget URLs were validated only when the widget was rendered and were not validated when the configuration was saved. As a result, an authenticated user able to modify dashboard widget settings could persist arbitrary URL values, including URLs using the javascript: scheme, through either of the dashboard settings persistence paths.
A malicious javascript: URL stored in a dashboard button could potentially result in client-side script execution in the MISP security context if the value reached a rendering or navigation path without the existing runtime validation. Such execution could allow an attacker to perform actions with the privileges of the affected user or access information available to their MISP session.
The practical exploitability of this issue is reduced by the fact that MISP already applied URL validation at render time, which neutralized known malicious values before they were presented to the user. The vulnerability therefore represents a persistence-layer validation gap and a defense-in-depth weakness rather than evidence of a direct bypass of the existing rendering protection.
The patch introduces a canonical url schema type and validates dashboard widget configuration before it is persisted through either settings save mechanism. ButtonWidget URLs must now be strings resolving to an absolute path on the current MISP instance or a full URL with the same origin. Values using javascript:, external origins, malformed URL forms, and non-string values are rejected at save time.
Threat Intelligence Overview
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.
What every action level means
SSVC AssessmentENISA
Priority Score
Attack Technique
Cross-Site Scripting occurs when an application accepts untrusted data and sends it to a web browser without proper validation or encoding.
An issue was discovered in MISP 2.4.9x before 2.4.99. Rated high severity (CVSS 8.8), this vulnerability is remotely exp
An issue was discovered in MISP before 2.4.158. Rated critical severity (CVSS 9.8), this vulnerability is remotely explo
app/Controller/Component/IndexFilterComponent.php in MISP before 2.4.167 mishandles ordered_url_params and additional_de
SQL injection in MISP threat intelligence platform versions prior to 2.5.37 allows remote unauthenticated attackers to m
An issue was discovered in MISP before 2.4.158. Rated high severity (CVSS 7.5), this vulnerability is remotely exploitab
MISP 2.4.172 mishandles different certificate file extensions in server sync. Rated high severity (CVSS 7.5), this vulne
In MISP before 2.4.148, app/Lib/Export/OpendataExport.php mishandles parameter data that is used in a shell_exec call. R
An issue was discovered in app/Controller/UsersController.php in MISP 2.4.92. Rated critical severity (CVSS 9.8), this v
An issue was discovered in MISP 2.4.128. Rated critical severity (CVSS 9.8), this vulnerability is remotely exploitable,
MISP before 2.4.135 lacks an ACL check, related to app/Controller/GalaxyElementsController.php and app/Model/GalaxyEleme
app/View/Elements/genericElements/IndexTable/Fields/generic_field.ctp in MISP 2.4.144 does not sanitize certain data rel
MISP 2.4.148, in certain configurations, allows SQL injection via the app/Model/Log.php $conditions['org'] value. Rated
EUVD-2026-70503
GHSA-gp3m-78wh-q857
NVD
CVE.org
EPSS
Vulnrichment
VulDB
Exploit-DB