CVE-2026-85230
MediumCVSS 5.4Exploitation Probability (EPSS)
Low risk7th percentile - higher than 7% of all known CVEs
Summary
A persistent unsafe URL injection vulnerability was found in the MISP dashboard ButtonWidget configuration. Dashboard widget URLs were validated only at render time and not when the configuration was saved, so an authenticated user able to modify widget settings could persist arbitrary URL values, including javascript: scheme URLs. The patch adds a canonical url schema type and validates widget configuration before it is persisted.
Risk Assessment
A malicious javascript: URL stored in a dashboard button could lead to client-side script execution in the MISP security context if the value reached a rendering or navigation path without runtime validation, allowing actions with the affected user's privileges or access to their session data. Practical exploitability is reduced because MISP already applied URL validation at render time, neutralizing known malicious values.
Recommendation
Update MISP to a version containing the fix that introduces a canonical url schema type and validates dashboard widget configuration before it is persisted. After updating, review existing button configurations and remove values using javascript:, external origins, or malformed URL forms.
Other vulnerabilities in MISP
See all- CVE-2026-95806High
MISP registers PHP's phar stream wrapper in both its web and console entry points. This causes filesystem operations on caller-influenced paths to trigger implicit unserialize() (a deserialization sink), and a relocated application root can reach executable code inside an uploaded phar file, enabling code execution as the web user.
- CVE-2026-95805Medium
A typo in the MISP ACLComponent access control configuration caused the ACL rule for the previewEventAttributes action to reference the permission string 'theming_enabled*' (with a trailing asterisk) instead of the correct 'theming_enabled'. The malformed key does not match any valid permission identifier, causing the access control check for previewEventAttributes to malfunction — potentially resulting in either an authorization bypass or denial of access for legitimate users.
- CVE-2026-95754Medium
In MISP's UsersController login(), the pre-auth query for TOTP verification did not include the User.disabled column, so the disabled flag was not checked in that branch. Although later identify() validation still rejects disabled accounts, a TOTP-enabled user can proceed to the verification step.
- CVE-2026-95703Medium
In MISP, the __uploadLogo method in OrganisationsController processes a caller-supplied tmp_name with filesystem probes before verifying it is a real upload. An authenticated site-admin can supply an arbitrary server file path, allowing to check for file existence and determine image types.
- CVE-2026-95701Medium
In MISP, the __statisticsOrgs method uses the organization name directly as a file path component when checking for logo existence. Although the target directory does not exist, the pattern is a path traversal weakness that could allow probing arbitrary files if the directory existed.
- CVE-2026-95698Medium
The findOrgImage method in MISP constructs a file path from an organization identifier without validation, allowing path traversal. An authenticated user with ability to create or import events can set an organization name with traversal sequences, enabling arbitrary file existence probing and limited file read for .png or .svg extensions.
- CVE-2026-95697Medium
MISP contains an authorization flaw in the Organisation model's captureOrg method. When the $force parameter is set to true, the method unconditionally overwrites organization metadata fields without verifying that the invoking user holds sufficient privileges. A user with a sharing group (SG) editor role can trigger this code path, allowing them to modify organization metadata that should be restricted to site administrators or users with sync permissions.
- CVE-2026-95693Medium
In MISP, the EventReport::uploadPicture method processes a caller-supplied tmp_name field by invoking file_exists(), mime_content_type(), and exif_imagetype() on the supplied path before verifying that the value was a genuine PHP upload via is_uploaded_file(). An authenticated user holding the perm_add permission could supply an arbitrary filesystem path as the tmp_name value. The application would then probe that path and return distinct validation error messages depending on whether the file existed, its MIME type, or its image format, allowing enumeration of file existence and type.
- CVE-2026-95685Medium
MISP contains an access control flaw in the EventReports functionality. The replaceSuggestionInReport action, which allows modification of suggestion content within an event report, was incorrectly mapped to the wildcard permission ('*') in the ACLComponent, making it accessible to any authenticated user regardless of their assigned permissions. All analogous report-modification actions correctly required the perm_add permission, while read-only actions such as downloadAsPDF appropriately used the wildcard.
- CVE-2026-95683Medium
In MISP, the Overmind event view enriches an event with its most recent attached report for preview purposes. The enrichment logic fetched the report using only the event ID as the lookup condition, without applying the report's own distribution/ACL constraints. Because MISP reports carry an independent distribution setting that can be more restrictive than the parent event's distribution, an authenticated user who had read access to the event could retrieve and view a report whose distribution explicitly excluded that user. Additionally, the query did not filter out soft-deleted reports, allowing retrieval of reports that had been administratively removed.
Original NVD description (English source)
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.
Vulnerability data from NVD (NIST) · CISA KEV · EPSS

