CVE-2026-19734
Full vulnerability record from the local CVENow database.
Description
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.
View original CVE JSON
{
"id": "CVE-2026-19734",
"sourceIdentifier": "4daa8cea-433a-44bd-9456-53b127fc289a",
"published": "2026-08-13T15:19:38.940",
"lastModified": "2026-10-23T18:10:00.167",
"vulnStatus": "Deferred",
"cveTags": [],
"descriptions": [
{
"lang": "en",
"value": "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."
},
{
"lang": "es",
"value": "Autorización faltante y omisión de autorización a través de clave controlada por el usuario en el componente de gestión de productos en Roskus Prospero Flow CRM anterior a 5.4.7 permite a usuarios autenticados de cualquier empresa leer los datos sensibles completos (precio, costo, stock, SKU y código de barras) de un producto de otra empresa y secuestrar ese producto reasignando su company_id, a través del identificador numérico del producto, porque ’ProductUpdateController’ no extendía ’MainController’ y por lo tanto no requería ninguna verificación de autenticación en el punto final de lectura, y ’ProductRepository::save()’ recuperaba el registro a través de ’Product::find($data[’id’])’ sin restringir la consulta a la empresa del usuario autenticado antes de sobrescribir su company_id."
}
],
"affected": [
{
"source": "4daa8cea-433a-44bd-9456-53b127fc289a",
"affectedData": [
{
"vendor": "Roskus",
"product": "Prospero Flow CRM",
"defaultStatus": "unaffected",
"modules": [
"Product management"
],
"programFiles": [
"app/Http/Controllers/Product/ProductUpdateController.php",
"app/Http/Controllers/Product/ProductCreateController.php",
"app/Repositories/ProductRepository.php"
],
"repo": "https://github.com/Roskus/prospero-flow-crm",
"versions": [
{
"version": "0",
"lessThan": "5.4.7",
"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:L/UI:N/VC:H/VI:H/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": 8.6,
"baseSeverity": "HIGH",
"attackVector": "NETWORK",
"attackComplexity": "LOW",
"attackRequirements": "NONE",
"privilegesRequired": "LOW",
"userInteraction": "NONE",
"vulnConfidentialityImpact": "HIGH",
"vulnIntegrityImpact": "HIGH",
"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-08-13T17:00:14.671007Z",
"id": "CVE-2026-19734",
"options": [
{
"exploitation": "none"
},
{
"automatable": "no"
},
{
"technicalImpact": "total"
}
],
"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/f36c2a115f4c28c82181f1798c01582ae953b932",
"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-19734-idor-in-prospero-flow-crm-allows-cross-tenant-product-disclosure-and-hijacking",
"source": "4daa8cea-433a-44bd-9456-53b127fc289a"
}
]
}