Saltar al contenido
CVE-2026-19734 ·
Alta · 13 de agosto de 2026

IDOR en Prospero Flow CRM permite divulgación y apropiación de productos entre empresas

S0
Secur0 CNA
CVE-2026-19734

Descripción

Authorization Bypass Through User-Controlled Key (CWE-639) y Missing Authorization (CWE-862) en el módulo de productos (ProductUpdateController, ProductCreateController y ProductRepository), expuestos en GET /product/update/{id} y POST /product/save, en Prospero Flow CRM 5.4.6, que permiten a un usuario autenticado de cualquier empresa leer los datos sensibles de un producto perteneciente a otra empresa (precio, coste, stock, SKU y código de barras) y apropiarse de dicho producto reasignando su company_id, mediante el identificador numérico del producto, debido a que ProductUpdateController::update() recuperaba el registro con Product::find($id) y ProductRepository::save() con Product::find($data['id']), en ambos casos sin restringir la consulta al company_id del usuario autenticado antes de sobrescribir ese mismo campo con el de la sesión, y a que ninguno de los dos controladores extendía MainController, por lo que no se les aplicaba el middleware auth ni locked que el resto del proyecto sí impone, a diferencia de los módulos de contactos y clientes, que sí filtran por company_id en sus operaciones equivalentes. Esto resulta en la divulgación de la información comercial completa de productos ajenos y en la transferencia no autorizada de esos productos al inventario de la empresa del atacante, con la consiguiente pérdida del registro para su propietario legítimo.

Tipo de vulnerabilidad (CWE)

CWE-639: Authorization Bypass Through User-Controlled Key

CWE-862: Missing Authorization

Versiones afectadas

Prospero Flow CRM anteriores a 5.4.7 (corregido en 5.4.7 por el commit f36c2a11, de fecha 2026-06-25). El sumidero de lectura se introdujo en el commit 9e07ae4c (2022-09-07) y el de guardado en el commit 65f6b9f9 (2023-02-21); ambos estuvieron presentes en las etiquetas v1.0.0, v2.0.1 y v4.6.0, por lo que sí hubo releases etiquetadas distribuidas en estado vulnerable. La versión 5.4.7 no tiene etiqueta git: la primera etiqueta que incorpora la corrección es v5.5.3. Las versiones se leen de la constante APP_VERSION en version.php. Estado por defecto: no afectado.

Puntuación (CVSS 4.0)

Alta (8.6)

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

Solución

Actualizar a la versión 5.4.7 o superior. La corrección no se etiquetó: la primera release etiquetada que la incorpora es v5.5.3.

Parche

Commit f36c2a11

Créditos

  • Darío Rivas Quero - finder (descubridor)
  • Cristian Fernández Cornejo - analyst (analista)
  • Xoán M. Otero Jorge - analyst (analista)
  • Secur0 CNA - coordinator (coordinador)
  • Gustavo Novaro - remediation developer (desarrollador de la corrección) Origen del descubrimiento: Interno Registro oficial: CVE-2026-19734