CVE-2025-55854 - Vulnerabilidad de Cross-Site Scripting (XSS) Almacenado
Resumen de la Vulnerabilidad
ID CVE: CVE-2025-55854
Tipo de Vulnerabilidad: Cross-Site Scripting (XSS) Almacenado
Severidad: Alta
Componente Afectado: Campo Bio del Perfil de Usuario
Aplicación Afectada: FreelanceHub (https://github.com/nooncarlett/FreelanceHub)
Descripción
Se ha descubierto una vulnerabilidad de Cross-Site Scripting (XSS) almacenado en la funcionalidad de perfil de usuario de la aplicación FreelanceHub. La vulnerabilidad existe debido a una sanitización insuficiente de la entrada en el campo Bio, lo que permite a los atacantes inyectar código JavaScript malicioso que se ejecuta cuando otros usuarios visualizan la página de perfil afectada.
Esta vulnerabilidad permite a un atacante:
- Ejecutar JavaScript arbitrario en el contexto de los navegadores de otros usuarios
- Robar tokens de sesión y cookies
- Realizar acciones en nombre de usuarios autenticados
- Redirigir a los usuarios a sitios web maliciosos
- Desfigurar la interfaz de la aplicación
Versiones Afectadas
- FreelanceHub (todas las versiones anteriores al parche)
- Probado en: implementación localhost ejecutándose en el puerto 8080
Detalles Técnicos
Causa Raíz
La aplicación no sanitiza adecuadamente la entrada del usuario en el campo Bio antes de almacenarla en la base de datos y renderizarla en la página de perfil. El HTML se renderiza directamente sin escapar caracteres especiales ni eliminar etiquetas y manejadores de eventos potencialmente peligrosos.
Vector de Ataque
- Tipo de Ataque: XSS almacenado
- Vector de Entrada: Campo Bio del Perfil de Usuario
- Contexto de Ejecución: Cualquier usuario que visualice el perfil del atacante
- Autenticación Requerida: Sí (el atacante necesita una cuenta válida)
Prueba de Concepto
Requisitos Previos
- Instancia en ejecución de la aplicación FreelanceHub
- Navegador web (Chrome, Firefox, Edge, etc.)
- Acceso para crear una cuenta de usuario
Reproducción Paso a Paso
Paso 1: Crear una Nueva Cuenta
- Navegue a
http://localhost:8080/auth
- Regístrese para obtener una nueva cuenta de usuario con credenciales válidas
- Complete el proceso de registro e inicie sesión

Paso 2: Navegar a la Página de Perfil
- Después de iniciar sesión correctamente, navegue a
http://localhost:8080/profile
- Localice el campo Bio en el formulario de edición de perfil
Paso 3: Inyectar el Payload XSS
- En el campo Bio, introduzca el siguiente payload:
- Haga clic en el botón Guardar o Actualizar Perfil
- Espere la confirmación de que el perfil ha sido actualizado
Paso 5: Activar el XSS
- Visite o recargue la página de perfil:
http://localhost:8080/profile
- El cuadro de alerta de JavaScript se ejecutará automáticamente
- Resultado: El código JavaScript se ejecuta correctamente, confirmando la vulnerabilidad de XSS almacenado
Comportamiento Esperado
La aplicación debería sanitizar la entrada y:
- Eliminar todas las etiquetas HTML del campo Bio
- Codificar caracteres especiales (
<, >, ", ', etc.)
- Implementar cabeceras de Política de Seguridad de Contenido (CSP)
Comportamiento Real
El payload HTML/JavaScript malicioso se almacena en la base de datos y se ejecuta cuando se renderiza la página de perfil, sin ninguna sanitización ni codificación.
Evaluación del Impacto
Severidad: ALTA
Puntuación CVSS v3.1: 8.1 (Alta)
Cadena de Vector: CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:N
Impacto en el Mundo Real
- Secuestro de Sesión: Los atacantes pueden robar tokens de sesión y suplantar a los usuarios
- Robo de Credenciales: Los scripts maliciosos pueden crear formularios de inicio de sesión falsos para capturar credenciales
- Exfiltración de Datos: Los datos sensibles de los usuarios pueden enviarse a servidores controlados por el atacante
- Distribución de Malware: Los usuarios pueden ser redirigidos a sitios web maliciosos
- Ataques de Phishing: El dominio de confianza puede utilizarse para alojar contenido de phishing convincente
- Toma de Control de Cuenta: Combinada con otras vulnerabilidades, esto puede conducir al compromiso total de la cuenta