Saltar al contenido
CVE-2026-59238 ·
Media · 20 de julio de 2026

XSS almacenado en Pentestify mediante imágenes de findings y logo de cliente sin sanitizar

S0
Secur0 CNA
CVE-2026-59238

Descripción

Stored Cross-site Scripting (CWE-79) en las funciones de renderizado en cliente renderPreview(), renderEditor() y renderAuditData() de js/app.js en Pentestify <1.1.0, que permite a un atacante remoto y autenticado ejecutar JavaScript arbitrario en el navegador de cualquier usuario que abra un reporte, debido a que los valores del array images de un finding y del array client_logo de un report se interpolan directamente en el atributo src de etiquetas <img> mediante template literals sin escapar (por ejemplo <img src="${img}">), a diferencia de los campos de texto, que sí pasan por la función escapeHTML() de la aplicación. Un atacante almacena un payload como x" onerror="..." a través de la API REST (POST /api/reports/{id}/findings); se persiste sin sanitizar y se ejecuta cuando cualquier otro usuario, incluidos administradores, visualiza el reporte afectado. Esto resulta en la ejecución de JavaScript arbitrario en el contexto de la aplicación en el navegador de la víctima.

Tipo de vulnerabilidad (CWE)

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

Versiones afectadas

Pentestify anteriores a 1.1.0 (todas las versiones anteriores a la 1.1.0, incluida la 1.0.0). El fallo está presente desde antes de la versión 1.0.0 y se corrigió en la 1.1.0. Estado por defecto: no afectado.

Puntuación (CVSS 4.0)

Media

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

Solución

Actualizar a la versión 1.1.0 o superior.

Parche

Commit a058a22

Créditos

  • Marcos García (s3ntinl) - finder (descubridor)
  • Mario Álvarez Fernández - analyst and remediation developer (analista y desarrollador de la corrección)
  • Xoán M. Otero Jorge - analyst (analista)
  • Secur0 CNA - coordinator (coordinador) Origen del descubrimiento: Externo Registro oficial: CVE-2026-59238