Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessAcquire any valid tenant account
-
DeliveryAuthenticate via REST API
-
ExploitEnumerate GET /api/order/{id} sequentially
-
ExecutionHarvest cross-tenant order and customer data
-
ImpactIssue PUT/DELETE requests to tamper with or destroy other tenants' orders
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A01:2025 - Broken Access Control
ASVS 5.0
V8 - Authorization Object-level authorization, IDOR prevention
|
| Exploitation Conditions | Exploitation requires a valid, authenticated user session for any tenant account on the Prospero Flow CRM instance - a standard low-privilege user with no administrative rights is sufficient (PR:L). The attacker must have network access to the REST API (typically HTTPS on port 443). All five vulnerable endpoints are affected in their default configuration with no special feature flag or non-standard setup required: GET /api/order/{id}, PUT /api/order/{id}, GET /api/order-item/{id}, PUT /api/order-item/{id}, and DELETE /api/order-item/{id}. Exploitation is strictly limited to authenticated sessions - unauthenticated access to these endpoints is not possible, making account acquisition the sole prerequisite. Single-tenant deployments where only one company exists in the database would observe no exploitable cross-tenant impact, though the vulnerability is structurally present. |
| Impact | A notable discrepancy exists in the provided CVSS 4.0 vector: PR:N (no privileges required) directly contradicts the CVE description, which explicitly states exploitation requires a remote authenticated user. PR:N is treated as a scoring error; PR:L is the correct metric given the authentication prerequisite. Real-world risk is elevated for any multi-tenant deployment: a single malicious or compromised tenant account grants full read/write/delete access to every other company's order data. The low attack complexity (AC:L, sequential integer IDs, standard REST verbs) means any authenticated user can exploit this without specialized tooling. The CVSS 4.0 impact metrics VC:L/VI:L may understate business risk in a CRM context, where order data routinely contains PII, pricing, and commercially sensitive customer information. No KEV listing and no public exploit code identified at time of analysis, but the attack pattern is self-evident from API discovery. SSVC signals suggest: exploitation is plausible (authenticated account obtainable), automatable (sequential ID enumeration is scriptable), and technical impact is partial on the vulnerable system with significant cross-tenant data exposure. |
| Exploit ScenarioDerived | An attacker registers or compromises any low-privilege user account on a shared Prospero Flow CRM instance, then authenticates and iterates GET /api/order/1 through /api/order/N to harvest every order in the database across all tenants. With targeted order IDs in hand, the attacker issues PUT /api/order/{id} requests to manipulate competitor pricing or delivery details, and DELETE /api/order-item/{id} to silently destroy line items belonging to other companies. No exploit toolkit is required - the attack is executable with curl or any REST client. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Jul 16, 2026
Cross-tenant IDOR in Roskus Prospero Flow CRM before 5.5.3 allows any authenticated user to read, modify, and delete order and order-item records belonging to other companies (tenants) by supplying sequential integer IDs to five REST API endpoints. The root cause is missing company_id scoping in Eloquent ORM queries across all Order and OrderItem controllers, making every tenant's order data globally accessible to any platform user. No public exploit code or CISA KEV entry exists at time of analysis, but exploitation requires only a valid account and standard HTTP iteration - no special tools or expertise needed.
RemediationAI
Upgrade to Prospero Flow CRM version 5.5.3 or later, available at https://github.com/Roskus/prospero-flow-crm/releases/tag/v5.5.3; the remediation commit is https://github.com/Roskus/prospero-flow-crm/commit/9a859c4de3d49674916773d346c60d89ad7febe0 and can be reviewed to confirm scope. If immediate upgrade is not feasible, a compensating control is to restrict access to the /api/order/* and /api/order-item/* endpoint paths at the web server or API gateway layer to explicitly allowlisted IP ranges corresponding to known legitimate API consumers - this eliminates opportunistic enumeration from arbitrary authenticated sessions but will break any API integration operating from dynamic or unlisted IPs. A second compensating control is rate-limiting or anomaly detection on the order API endpoints to flag high-volume sequential ID requests, though this detects rather than prevents exploitation. There is no application-level workaround that preserves full API functionality without applying the patch.
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
Prospero Flow CRM (CPE: cpe:2.3:a:roskus:prospero_flow_crm:*:*:*:*:*:*:*:*) is a PHP/Laravel SaaS CRM supporting multiple isolated tenants (companies). The affected controllers - OrderReadController, OrderUpdateController, OrderItemReadController, OrderItemUpdateController, and OrderItemDeleteController - resolved records using bare Eloquent calls (Order::find($id) and Item::find($id)) that perform a primary-key lookup with no WHERE clause filtering by the authenticated user's company_id. This is a canonical CWE-639 (Authorization Bypass Through User-Controlled Key) / IDOR flaw: the integer {id} path parameter is entirely user-controlled, and because Laravel's Eloquent find() resolves globally across all tenants, any valid session can address any record in the database. Sequential auto-increment primary keys make enumeration trivial. The fix committed at 9a859c4 adds ->where('company_id', Auth::user()->company_id) to all Order queries and whereHas('order', fn($q) => $q->where('company_id', ...)) for OrderItem relations, restoring tenant isolation at the ORM layer.
Know when Prospero Flow Crm 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:N/UI:N/VC:L/VI:L/VA:N/SC:N/SI:N/SA:N
Requires authenticated low-privilege account (PR:L); REST API over network (AV:N); crosses tenant isolation boundary affecting other companies' data (S:C); no availability impact.
Primary rating from Vendor (Secur0).
CVSS VectorVendor: Secur0
DescriptionCVE.org
Authorization Bypass Through User-Controlled Key (CWE-639) in the Order and OrderItem REST API controllers in Roskus Prospero Flow CRM before 5.5.3 allows a remote, authenticated user to read, modify, and delete orders and order items belonging to any other company (tenant) via a sequential numeric {id} supplied to GET /api/order/{id}, PUT /api/order/{id}, GET /api/order-item/{id}, PUT /api/order-item/{id}, or DELETE /api/order-item/{id}, because the controllers resolve records with Order::find($id) / Item::find($id) without scoping by the authenticated user's company.
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
Authentication bypass attacks exploit flaws in the verification mechanisms that control access to systems and applications.
More in Prospero Flow Crm
View allCross-tenant authorization bypass (IDOR/BOLA) in Roskus Prospero Flow CRM 4.0.0 through 5.3.1 lets an authenticated user
Broken function-level authorization in Prospero Flow CRM before 5.5.3 lets any authenticated low-privileged user (e.g. t
Cross-tenant transaction data exposure in Roskus Prospero Flow CRM 5.0.0-5.3.5 allows any authenticated user on a shared
Privilege escalation in Roskus Prospero Flow CRM before version 5.2.1 permits any authenticated user - regardless of ass
Cross-tenant IDOR in Roskus Prospero Flow CRM before 5.4.7 allows any authenticated user to read sensitive product recor
Cross-tenant IDOR in Roskus Prospero Flow CRM's ticket management component allows any authenticated user - regardless o
Cross-tenant payroll data exposure in Roskus Prospero Flow CRM before 5.15.10 enables authenticated users holding standa
Cross-tenant IDOR in Prospero Flow CRM before 5.4.8 allows any authenticated user to blindly overwrite contact records b
Cross-tenant record injection in Roskus Prospero Flow CRM before 5.14.0 allows any authenticated user to silently insert
Unauthorized notification deletion in Prospero Flow CRM allows any authenticated user to delete other users' notificatio
Tenant data boundary failure in Roskus Prospero Flow CRM 4.9.1-5.14.0 allows authenticated users holding transaction and
Order confirmation in Roskus Prospero Flow CRM before 5.15.11 can be triggered by an unauthenticated attacker on behalf
EUVD-2026-44932
GHSA-x8qq-m4qc-rpj5
NVD
CVE.org
EPSS
Vulnrichment
VulDB
Exploit-DB