← Back to CVE Explorer

CVE-2026-59240

Full vulnerability record from the local CVENow database.

Description

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.

Severity
MEDIUM
CVSS score
6.9 (v4.0)
Vulnerability status
Deferred
Source identifier
4daa8cea-433a-44bd-9456-53b127fc289a
Published
2026-07-27 22:17:54.713000
Last modified
2026-10-24 13:10:00.147000
View original CVE JSON
{
  "id": "CVE-2026-59240",
  "sourceIdentifier": "4daa8cea-433a-44bd-9456-53b127fc289a",
  "published": "2026-07-27T22:17:54.713",
  "lastModified": "2026-10-24T13:10:00.147",
  "vulnStatus": "Deferred",
  "cveTags": [],
  "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."
    },
    {
      "lang": "es",
      "value": "La vulnerabilidad implica una Referencia Directa Insegura a Objeto (IDOR) en el método “DeleteNotificationController::delete()” en el endpoint “GET /notification/delete/{id}”. La falla permite a cualquier usuario autenticado, independientemente de la empresa o los permisos, eliminar notificaciones pertenecientes a cualquier otro usuario en el sistema. El controlador recupera el registro objetivo con “Notification::findOrFail($id)” y lo elimina sin validar la propiedad de “user_id” o “company_id”, a diferencia del controlador hermano “SetNotificationReadAjaxController”, que correctamente limita las búsquedas por “Auth::id()”. Debido a que los identificadores de notificación son secuenciales, un atacante puede iterar sobre los IDs para eliminar sistemáticamente notificaciones pertenecientes a cualquier usuario, negándoles la visibilidad de alertas de tickets, asignaciones de tareas y otros eventos del sistema."
    }
  ],
  "affected": [
    {
      "source": "4daa8cea-433a-44bd-9456-53b127fc289a",
      "affectedData": [
        {
          "vendor": "Roskus",
          "product": "Prospero Flow CRM",
          "defaultStatus": "unaffected",
          "collectionURL": "https://github.com/Roskus/prospero-flow-crm",
          "programFiles": [
            "app/Http/Controllers/Notification/DeleteNotificationController.php"
          ],
          "repo": "https://github.com/Roskus/prospero-flow-crm",
          "versions": [
            {
              "version": "1.0.0",
              "lessThan": "5.5.1",
              "versionType": "semver",
              "status": "affected"
            }
          ]
        }
      ]
    }
  ],
  "metrics": {
    "cvssMetricV40": [
      {
        "source": "4daa8cea-433a-44bd-9456-53b127fc289a",
        "type": "Secondary",
        "cvssData": {
          "version": "4.0",
          "vectorString": "CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:L/VA:N/SC:N/SI:N/SA:N/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:X",
          "baseScore": 6.9,
          "baseSeverity": "MEDIUM",
          "attackVector": "NETWORK",
          "attackComplexity": "LOW",
          "attackRequirements": "NONE",
          "privilegesRequired": "NONE",
          "userInteraction": "NONE",
          "vulnConfidentialityImpact": "NONE",
          "vulnIntegrityImpact": "LOW",
          "vulnAvailabilityImpact": "NONE",
          "subConfidentialityImpact": "NONE",
          "subIntegrityImpact": "NONE",
          "subAvailabilityImpact": "NONE",
          "exploitMaturity": "NOT_DEFINED",
          "confidentialityRequirement": "NOT_DEFINED",
          "integrityRequirement": "NOT_DEFINED",
          "availabilityRequirement": "NOT_DEFINED",
          "modifiedAttackVector": "NOT_DEFINED",
          "modifiedAttackComplexity": "NOT_DEFINED",
          "modifiedAttackRequirements": "NOT_DEFINED",
          "modifiedPrivilegesRequired": "NOT_DEFINED",
          "modifiedUserInteraction": "NOT_DEFINED",
          "modifiedVulnConfidentialityImpact": "NOT_DEFINED",
          "modifiedVulnIntegrityImpact": "NOT_DEFINED",
          "modifiedVulnAvailabilityImpact": "NOT_DEFINED",
          "modifiedSubConfidentialityImpact": "NOT_DEFINED",
          "modifiedSubIntegrityImpact": "NOT_DEFINED",
          "modifiedSubAvailabilityImpact": "NOT_DEFINED",
          "Safety": "NOT_DEFINED",
          "Automatable": "NOT_DEFINED",
          "Recovery": "NOT_DEFINED",
          "valueDensity": "NOT_DEFINED",
          "vulnerabilityResponseEffort": "NOT_DEFINED",
          "providerUrgency": "NOT_DEFINED"
        }
      }
    ],
    "ssvcV203": [
      {
        "source": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
        "ssvcData": {
          "timestamp": "2026-07-28T14:19:12.811494Z",
          "id": "CVE-2026-59240",
          "options": [
            {
              "exploitation": "none"
            },
            {
              "automatable": "yes"
            },
            {
              "technicalImpact": "partial"
            }
          ],
          "role": "CISA Coordinator",
          "version": "2.0.3"
        }
      }
    ]
  },
  "weaknesses": [
    {
      "source": "4daa8cea-433a-44bd-9456-53b127fc289a",
      "type": "Secondary",
      "description": [
        {
          "lang": "en",
          "value": "CWE-639"
        }
      ]
    }
  ],
  "references": [
    {
      "url": "https://github.com/Roskus/prospero-flow-crm/commit/eaee2ae018701d116164976cbfa37fa9294ab4cc",
      "source": "4daa8cea-433a-44bd-9456-53b127fc289a"
    },
    {
      "url": "https://github.com/Roskus/prospero-flow-crm/releases/tag/v5.5.3",
      "source": "4daa8cea-433a-44bd-9456-53b127fc289a"
    },
    {
      "url": "https://secur0.com/en/cna/cve-list/cve-2026-59240-idor-in-prospero-flow-crm-allows-deletion-of-other-users-notifications",
      "source": "4daa8cea-433a-44bd-9456-53b127fc289a"
    }
  ]
}