Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessAuthenticate to any tenant account
-
DeliveryEnumerate target company's product IDs via sequential integer guessing
-
ExploitGET /product/update/{id} to extract price, cost, SKU, and barcode data
-
ExecutionPOST /product/save with victim product id and attacker's company_id
-
ImpactProduct ownership silently transferred to attacker's tenant
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 only a valid authenticated session for any user account in any tenant of the Prospero Flow CRM instance - no administrative role, elevated permission, or special configuration is needed. The read-endpoint vulnerability (broken MainController inheritance on ProductUpdateController) means even a newly registered low-privilege user can GET /product/update/{id} for arbitrary IDs without being redirected or rejected. The write/hijack path additionally requires the attacker to supply the target product's numeric ID, which is predictable given Laravel Eloquent's sequential auto-increment primary keys. Multi-tenant deployment is the prerequisite for cross-company impact; single-tenant deployments face intra-organization unauthorized product modification only. No non-default feature flag, specific platform version, or special network position is required beyond a standard Prospero Flow CRM installation running any version before 5.4.7. |
| Impact | The CVSS 4.0 vector (AV:N/AC:L/AT:N/PR:L/UI:N/VC:H/VI:H/VA:N) is internally consistent with the description: network-reachable, low complexity, authenticated (PR:L), and yielding high confidentiality and integrity impact with no availability consequence. The PR:L rating means any user holding a valid session in any tenant can exploit both attack paths with no elevation required. No EPSS score was provided in the input data, and the CVE is absent from CISA KEV, so mass automated exploitation is not confirmed - however, the trivially low exploit complexity (sequential integer ID guessing against a predictable auto-increment primary key) and the severe cross-tenant data leakage and asset-hijacking outcome mean real-world risk is disproportionately higher than raw EPSS absence would suggest. For any operator running Prospero Flow CRM in a multi-tenant configuration, this should be treated as a high-priority remediation regardless of KEV status. No conflicting signals exist between the CVSS vector and the technical description - both consistently describe an authenticated low-privilege network attacker requiring no special conditions. |
| Exploit ScenarioDerived | An authenticated user in Company B sends GET requests to /product/update/{id} with sequentially enumerated numeric IDs, reading price, cost, stock quantity, SKU, and barcode fields belonging to Company A's product catalog without any additional privileges. The same user then POSTs to /product/save with the target product's id and their own company_id, silently transferring ownership of Company A's product record into Company B's inventory. No public proof-of-concept code has been identified, but the attack is straightforward given the code-level root cause disclosed in the public commit diff. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Aug 13, 2026
Cross-tenant IDOR in Roskus Prospero Flow CRM before 5.4.7 allows any authenticated user to read sensitive product records belonging to other tenant companies and reassign those products into their own account. Two compounding root causes drive the impact: ProductUpdateController lacked the MainController inheritance that enforces session-based authorization, leaving the product read endpoint unguarded, while ProductRepository::save() performed a bare Product::find($data['id']) lookup with no company_id scope constraint, enabling cross-tenant record hijacking. No public exploit or CISA KEV listing exists at time of analysis, but the exploit conditions are trivially met by any authenticated session holder.
RemediationAI
Upgrade to Prospero Flow CRM 5.4.7 or later; the vendor-confirmed patch is available at https://github.com/Roskus/prospero-flow-crm/releases/tag/v5.5.3. The fix restores MainController inheritance on both product controllers (enforcing authentication middleware) and scopes all product lookups to the authenticated user's company_id via Product::where('company_id', Auth::user()->company_id)->findOrFail($id), as detailed in commit f36c2a115f4c28c82181f1798c01582ae953b932. If an immediate upgrade is not feasible, apply network-layer or WAF rules to restrict access to the /product/update/* (GET) and /product/save (POST) endpoints to known-trusted IP ranges - note this is a compensating control only and does not remediate the code-level flaw. Additionally, audit application logs for anomalous cross-company product ID access patterns to assess whether exploitation occurred prior to patching.
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
CWE-639 (Authorization Bypass Through User-Controlled Key) precisely describes this flaw: the application uses a user-supplied numeric integer as the sole record lookup key without verifying ownership. Prospero Flow CRM is a PHP/Laravel multi-tenant CRM (CPE: cpe:2.3:a:roskus:prospero_flow_crm:*:*:*:*:*:*:*:*). In Laravel, controllers extend a base MainController to inherit shared middleware guards including session authentication. Because ProductUpdateController did not extend MainController, that middleware chain was broken, leaving /product/update/{id} accessible without an enforced authentication check. Separately, ProductRepository::save() called Product::find($data['id'])-a raw Eloquent model lookup-without chaining a where('company_id', ...) scope, allowing any authenticated caller to overwrite any product record's company_id field and transfer ownership across tenant boundaries. The fix in commit f36c2a115f4c28c82181f1798c01582ae953b932 restores MainController inheritance on both ProductCreateController and ProductUpdateController and replaces all bare find() calls with Product::where('company_id', Auth::user()->company_id)->findOrFail($id).
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:L/UI:N/VC:H/VI:H/VA:N/SC:N/SI:N/SA:N
Network-accessible IDOR requiring only a valid session (PR:L); low complexity via sequential ID enumeration; high confidentiality and integrity impact; no availability impact; scope unchanged as attack stays within the same application component.
Primary rating from Vendor (Secur0).
CVSS VectorVendor: Secur0
DescriptionCVE.org
Missing Authorization and Authorization Bypass Through User-Controlled Key in the product management component in Roskus Prospero Flow CRM before 5.4.7 allows authenticated users of any company to read the full sensitive data (price, cost, stock, SKU, and barcode) of another company's product and to hijack that product by reassigning its company_id, via the product's numeric identifier, because ProductUpdateController did not extend MainController and therefore required no authentication check on the read endpoint, and ProductRepository::save() retrieved the record via Product::find($data['id']) without constraining the query to the authenticated user's company before overwriting its company_id.
Executive ViewAI
Roskus Prospero Flow CRM versions before 5.4.7 contain a cross-tenant authorization flaw allowing any authenticated user to access and manipulate sensitive product records belonging to other customer organizations on the same instance. The vulnerability requires only valid CRM credentials to exploit and presents direct risk of data theft and record tampering between competing business customers. All Roskus Prospero Flow CRM users should prioritize patching to version 5.4.7 immediately.
Apply vendor patch to version 5.4.7.
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.
Information disclosure occurs when an application unintentionally exposes sensitive data that aids attackers in reconnaissance or directly compromises security.
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'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
Cross-tenant IDOR in Roskus Prospero Flow CRM before 5.5.3 allows any authenticated user to read, modify, and delete ord
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-57924
GHSA-xrvm-rxhf-gwgp
NVD
CVE.org
EPSS
Vulnrichment
VulDB
Exploit-DB