Saltar al contenido
CVE-2026-78337 ·
Media · 24 de agosto de 2026

Carga sin restricciones de archivos de tipo peligroso en Prospero Flow CRM permite cross-site scripting almacenado mediante SVG

S0
Secur0 CNA
CVE-2026-78337

Descripción

Unrestricted Upload of File with Dangerous Type (CWE-434) e Improper Neutralization of Input During Web Page Generation (CWE-79) en CompanySaveController::save() (app/Http/Controllers/Company/CompanySaveController.php), expuesto en POST /company/save, en Prospero Flow CRM anteriores a 5.15.13, que permite a un usuario autenticado que posee los permisos create company y update company ejecutar JavaScript arbitrario en el origen de la aplicación contra cualquier visitante que abra el archivo, incluidos los visitantes no autenticados, mediante la carga como logotipo de empresa de un documento SVG con un elemento <script> embebido, debido a que el controlador no aplica validación alguna de tipo, extensión ni tamaño sobre el campo logo y compone el nombre de destino a partir de la extensión deducida del contenido antes de invocar storeAs() sobre el disco public, que el proyecto sirve de forma estática bajo /storage/company/{slug}/{archivo} sin pasar por el enrutado de Laravel y por tanto sin middleware de autenticación, a diferencia de ProductRequest::rules(), que restringe la carga equivalente de imagen con la regla image y la lista blanca mimes:jpeg,png,jpg,gif. Esto resulta en la ejecución de JavaScript arbitrario en el contexto de la aplicación al navegar directamente al archivo almacenado.

Tipo de vulnerabilidad (CWE)

CWE-434: Unrestricted Upload of File with Dangerous Type

CWE-79: Improper Neutralization of Input During Web Page Generation ('Cross-site Scripting')

Versiones afectadas

Prospero Flow CRM anteriores a 5.15.13. La carga del logotipo de empresa se introdujo en el commit dbd8f149 (2022-08-07), anterior a la incorporación de la constante de versión al proyecto, por lo que todas las versiones publicadas están afectadas. Las cinco etiquetas existentes (v1.0.0, v2.0.1, v4.6.0, v5.5.3 y v5.14.0) se publicaron vulnerables. La corrección no está etiquetada y v5.14.0 sigue siendo la etiqueta más reciente del repositorio, por lo que ninguna release etiquetada la incorpora. Estado por defecto: no afectado.

Puntuación (CVSS 4.0)

Media (4.8)

CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:A/VC:N/VI:L/VA:N/SC:N/SI:L/SA:N

Solución

Actualizar a la versión 5.15.13 o superior. Ninguna etiqueta git incorpora la corrección, de modo que es necesario desplegar desde la rama principal del repositorio: instalar v5.14.0, la etiqueta más reciente, deja el sistema afectado. La corrección valida las cargas posteriores pero no retira los archivos ya escritos, por lo que conviene revisar storage/app/public/company/ y eliminar los documentos SVG existentes.

Parche

Commit aaa4fc76

Créditos

  • Adrián García López - finder (descubridor)
  • Darío Rivas Quero - 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: Externo Registro oficial: CVE-2026-78337