
CVE-2025-60374: Cross-Site Scripting (XSS) almacenado en el chatbot de Perfex CRM
CVE-2025-60374: Cross-Site Scripting (XSS) Almacenado en el Chatbot de Perfex CRM
⚠️ Aviso de seguridad
Una vulnerabilidad crítica de Cross-Site Scripting Almacenado en la función de chatbot de Perfex CRM
Una vulnerabilidad de cross-site scripting (XSS) almacenado en el componente de chatbot de Perfex CRM, anterior a la versión 3.3.1, permite a los atacantes inyectar código JavaScript arbitrario a través de los mensajes del chat. La carga útil maliciosa se almacena en la base de datos de la aplicación y se ejecuta en los navegadores de los usuarios que visualizan la conversación del chat, lo que permite el robo de tokens de sesión, acciones no autorizadas en nombre de las víctimas y otros ataques del lado del cliente.
| Atributo | Valor |
|---|---|
| ID de CVE | CVE-2025-60374 |
| Tipo | Cross-Site Scripting (XSS) Almacenado |
| CWE | CWE-79 |
| Vector de ataque | Red/Remoto |
| Autenticación | Requerida (Privilegio bajo) |
| Interacción del usuario | Ninguna a Mínima |
| Descubridor | Ajansha Shankar |
El parámetro de mensaje del chatbot en Perfex CRM carece de una correcta saneamiento de entrada y codificación de salida. Cuando los usuarios envían mensajes a través de la interfaz del chatbot, las cargas útiles maliciosas de HTML/JavaScript se almacenan en la base de datos sin un filtrado adecuado y posteriormente se renderizan sin el escape correspondiente, lo que conduce a la ejecución de código en los navegadores de otros usuarios.
HttpOnlydocument.cookie| Factor | Impacto | Explicación |
|---|---|---|
| Confidencialidad | 🔴 ALTO | Los tokens de sesión y los datos sensibles pueden ser robados |
| Integridad | 🔴 ALTO | Se pueden realizar acciones no autorizadas en nombre de la víctima |
| Disponibilidad | 🟡 BAJO | Impacto limitado en la disponibilidad del sistema |
<button onclick=alert('Click executed!')>Click here</button>
<meter value=2 min=0 max=10 onmouseover=alert('XSS triggered!')>
2 out of 10
</meter>
Ejemplo de robo de cookies:
Esta carga útil enviaría la cookie de sesión de la víctima a un servidor controlado por el atacante, lo que permitiría la toma total de la cuenta.
// Input Sanitization Example
$message = htmlspecialchars($input_message, ENT_QUOTES, 'UTF-8');
// Output Encoding Example
echo htmlspecialchars($stored_message, ENT_QUOTES, 'UTF-8');
Content-Security-Policy: default-src 'self'; script-src 'self'; object-src 'none';
setcookie('session', $value, [
'httponly' => true,
'secure' => true,
'samesite' => 'Strict'
]);
// Use DOMPurify, HTML Purifier, or similar
$clean_html = $purifier->purify($dirty_html);
Descubierto por: Ajansha Shankar , Ahamed Yaseen