MISP Core contained broken access-control checks in the bulk deletion flows for Event Reports and Sharing Groups. The affected deleteSelection handlers authorized deletion using broad role-level permissions instead of validating authorization for each selected object. For Event Reports, EventReportsController::deleteSelection relied on the global perm_add capability rather than a per-report ownership/authorization check. As a result, a contributor-level user could submit report IDs or UUIDs for reports belonging to other organisations and hard-delete them instance-wide. The fix changed the callback to call EventReport::fetchIfAuthorized($user, $itemId, 'delete') for each selected report before deletion. For Sharing Groups, SharingGroupsController::deleteSelection relied on the global perm_sharing_group capability rather than verifying ownership of each selected sharing group. This allowed a sharing-group-capable user to hard-delete sharing groups owned by other organisations, bypassing the per-object ownership gate used by the single-object delete action. The fix changed the callback to call SharingGroup::checkIfOwner($user, $itemId) for each selected sharing group. An authenticated attacker with the relevant broad role permission could abuse the affected bulk deletion endpoints to delete objects outside their organisation’s authorization scope, causing loss of event-report content or sharing-group configuration across the instance.
The deleteSelection handlers for Event Reports and Sharing Groups only checked general role permissions (perm_add or perm_sharing_group) instead of verifying authorization for each specified object individually. In the case of Event Reports, the EventReportsController::deleteSelection controller did not invoke per-report ownership verification, allowing a user at contributor level to submit identifiers (ID or UUID) of reports belonging to other organizations and permanently delete them from the entire instance. Similarly, SharingGroupsController::deleteSelection skipped per-object ownership verification (SharingGroup::checkIfOwner), enabling a user with perm_sharing_group permission to delete sharing groups belonging to other organizations.
An attacker can permanently delete event reports and sharing groups belonging to any organizations within the entire MISP instance, causing irreversible data loss and configuration destruction without recovery possibilities.
Patches available in the MISP project GitHub repository should be applied according to commits ada02fa6d7558732aa4712fd5e9451cd8c5b7a64 (fix for Event Reports) and f99b3f16ef22c7acf10e17036c777759cf031c15 (fix for Sharing Groups). After the update, deleteSelection handlers verify per-object authorization before each deletion.
MISP Core (MISP/MISP project) — versions indicated in producer references (commits: ada02fa6d7558732aa4712fd5e9451cd8c5b7a64 and f99b3f16ef22c7acf10e17036c777759cf031c15)
CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:N/VC:H/VI:H/VA:H/SC:H/SI:H/SA:H/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:XMisp Project Misp
APPMisp-Project< 2.5.42
Related vulnerabilities
MISP: Wielokrotne słabości implementacji OAuth 2.0 z AAD – session fixation i inne
MISP: RCE przez złośliwy plik konfiguracyjny rdkafka (CWE-829)
SQL Injection w MISP — manipulacja parametrami sortowania zapytań
MISP: Nieprawidłowa weryfikacja przesyłanego logo organizacji
MISP: Nieprawidłowa walidacja uploadu pliku umożliwia RCE