The vulnerability involves an Insecure Direct Object Reference (IDOR) in the `DeleteNotificationController::delete()` method at endpoint `GET /notification/delete/{id}`. The flaw allows any authenticated user, regardless of company or permissions, to delete notifications belonging to any other user in the system. The controller retrieves the target record with `Notification::findOrFail($id)` and deletes it without validating `user_id` or `company_id` ownership, unlike the sibling `SetNotificationReadAjaxController`, which correctly scopes lookups by `Auth::id()`. Because notification identifiers are sequential, an attacker can iterate over IDs to systematically delete notifications belonging to any user, denying them visibility of ticket alerts, task assignments, and other system events.
IDOR in Prospero Flow CRM allows deletion of other users' notifications
Problem type
Affected products
Roskus
< 5.5.1 - AFFECTED
References
https://github.com/Roskus/prospero-flow-crm/commit/eaee2ae018701d116164976cbfa37fa9294ab4cc
https://github.com/Roskus/prospero-flow-crm/releases/tag/v5.5.3
https://secur0.com/en/cna/cve-list/cve-2026-59240-idor-in-prospero-flow-crm-allows-deletion-of-other-users-notifications
GitHub Security Advisories
GHSA-m6x4-f6j4-9qq6
The vulnerability involves an Insecure Direct Object Reference (IDOR) in the ...
https://github.com/advisories/GHSA-m6x4-f6j4-9qq6The vulnerability involves an Insecure Direct Object Reference (IDOR) in the DeleteNotificationController::delete() method at endpoint GET /notification/delete/{id}. The flaw allows any authenticated user, regardless of company or permissions, to delete notifications belonging to any other user in the system. The controller retrieves the target record with Notification::findOrFail($id) and deletes it without validating user_id or company_id ownership, unlike the sibling SetNotificationReadAjaxController, which correctly scopes lookups by Auth::id(). Because notification identifiers are sequential, an attacker can iterate over IDs to systematically delete notifications belonging to any user, denying them visibility of ticket alerts, task assignments, and other system events.
https://nvd.nist.gov/vuln/detail/CVE-2026-59240
https://github.com/Roskus/prospero-flow-crm/commit/eaee2ae018701d116164976cbfa37fa9294ab4cc
https://github.com/Roskus/prospero-flow-crm/releases/tag/v5.5.3
https://secur0.com/en/cna/cve-list/cve-2026-59240-idor-in-prospero-flow-crm-allows-deletion-of-other-users-notifications
https://github.com/advisories/GHSA-m6x4-f6j4-9qq6
JSON source
https://cveawg.mitre.org/api/cve/CVE-2026-59240Click to expand
{
"dataType": "CVE_RECORD",
"dataVersion": "5.2",
"cveMetadata": {
"cveId": "CVE-2026-59240",
"assignerOrgId": "4daa8cea-433a-44bd-9456-53b127fc289a",
"assignerShortName": "Secur0",
"dateUpdated": "2026-07-28T14:19:25.325Z",
"dateReserved": "2026-07-03T11:24:39.242Z",
"datePublished": "2026-07-27T21:37:33.747Z",
"state": "PUBLISHED"
},
"containers": {
"cna": {
"providerMetadata": {
"orgId": "4daa8cea-433a-44bd-9456-53b127fc289a",
"shortName": "Secur0",
"dateUpdated": "2026-07-27T21:37:33.747Z"
},
"datePublic": "2026-07-27T15:11:00.000Z",
"title": "IDOR in Prospero Flow CRM allows deletion of other users' notifications",
"descriptions": [
{
"lang": "en",
"value": "The vulnerability involves an Insecure Direct Object Reference (IDOR) in the `DeleteNotificationController::delete()` method at endpoint `GET /notification/delete/{id}`. The flaw allows any authenticated user, regardless of company or permissions, to delete notifications belonging to any other user in the system. The controller retrieves the target record with `Notification::findOrFail($id)` and deletes it without validating `user_id` or `company_id` ownership, unlike the sibling `SetNotificationReadAjaxController`, which correctly scopes lookups by `Auth::id()`. Because notification identifiers are sequential, an attacker can iterate over IDs to systematically delete notifications belonging to any user, denying them visibility of ticket alerts, task assignments, and other system events.",
"supportingMedia": [
{
"type": "text/html",
"base64": false,
"value": "The vulnerability involves an Insecure Direct Object Reference (IDOR) in the `DeleteNotificationController::delete()` method at endpoint `GET /notification/delete/{id}`. The flaw allows any authenticated user, regardless of company or permissions, to delete notifications belonging to any other user in the system. The controller retrieves the target record with `Notification::findOrFail($id)` and deletes it without validating `user_id` or `company_id` ownership, unlike the sibling `SetNotificationReadAjaxController`, which correctly scopes lookups by `Auth::id()`. Because notification identifiers are sequential, an attacker can iterate over IDs to systematically delete notifications belonging to any user, denying them visibility of ticket alerts, task assignments, and other system events."
}
]
}
],
"affected": [
{
"vendor": "Roskus",
"product": "Prospero Flow CRM",
"collectionURL": "https://github.com/Roskus/prospero-flow-crm",
"programFiles": [
"app/Http/Controllers/Notification/DeleteNotificationController.php"
],
"repo": "https://github.com/Roskus/prospero-flow-crm",
"defaultStatus": "unaffected",
"versions": [
{
"version": "1.0.0",
"status": "affected",
"versionType": "semver",
"lessThan": "5.5.1"
}
]
}
],
"problemTypes": [
{
"descriptions": [
{
"lang": "en",
"description": "CWE-639 Authorization bypass through User-Controlled key",
"cweId": "CWE-639",
"type": "CWE"
}
]
}
],
"references": [
{
"url": "https://github.com/Roskus/prospero-flow-crm/commit/eaee2ae018701d116164976cbfa37fa9294ab4cc",
"tags": [
"patch"
]
},
{
"url": "https://github.com/Roskus/prospero-flow-crm/releases/tag/v5.5.3",
"tags": [
"release-notes"
]
},
{
"url": "https://secur0.com/en/cna/cve-list/cve-2026-59240-idor-in-prospero-flow-crm-allows-deletion-of-other-users-notifications",
"tags": [
"technical-description"
]
}
],
"impacts": [
{
"capecId": "CAPEC-122",
"descriptions": [
{
"lang": "en",
"value": "CAPEC-122 Privilege Abuse"
}
]
}
],
"metrics": [
{
"format": "CVSS",
"scenarios": [
{
"lang": "en",
"value": "GENERAL"
}
]
}
],
"solutions": [
{
"lang": "en",
"value": "Upgrade to version 5.5.1 or higher.",
"supportingMedia": [
{
"type": "text/html",
"base64": false,
"value": "Upgrade to version 5.5.1 or higher."
}
]
}
],
"credits": [
{
"lang": "en",
"value": "Dario Rivas Quero",
"type": "finder"
},
{
"lang": "en",
"value": "Cristian Fernandez Cornejo",
"type": "analyst"
},
{
"lang": "en",
"value": "Xoan M. Otero Jorge",
"type": "analyst"
},
{
"lang": "en",
"value": "Gustavo Novaro",
"type": "remediation developer"
},
{
"lang": "en",
"value": "Secur0 CNA",
"type": "coordinator"
}
],
"tags": [
"x_open-source"
]
},
"adp": [
{
"providerMetadata": {
"orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
"shortName": "CISA-ADP",
"dateUpdated": "2026-07-28T14:19:25.325Z"
},
"title": "CISA ADP Vulnrichment",
"metrics": [
{}
]
}
]
}
}