XSS en Atención al cliente: actualiza a PrestaShop 8.2.6 o 9.1.1
En abril de 2026 se conoció una vulnerabilidad XSS almacenada en la vista de atención al cliente del back-office: un email con código malicioso se ejecutaba al abrirlo un administrador. PrestaShop publicó 8.2.6 y 9.1.1 y un módulo de corrección oficial; un miembro encontró una tienda infectada de siete.
El 24 de abril de 2026 el grupo se llenó de avisos: una vulnerabilidad en el back-office de PrestaShop permitía que un atacante ejecutara código en la sesión del administrador. Cuatro días después PrestaShop publicó las versiones de seguridad. La respuesta corta: actualiza a la 8.2.6 o a la 9.1.1; si no puedes hoy, instala el módulo de corrección oficial; y revisa tu base de datos, porque un miembro encontró una tienda infectada de siete que revisó.
Cómo funciona el ataque
Es un XSS almacenado (GHSA-w9f3-qc75-qgx9, CVE-2026-44212) en la sección de atención al cliente del back-office (Customer Service en la versión en inglés). Tiene dos causas, las mismas que corrige la solución manual de las notas de versión oficiales:
- La plantilla del back-office mostraba el email del hilo de atención al cliente sin escapar el HTML.
Validate::isEmail()aceptaba caracteres como<,>y"en un email.
El atacante escribe a la tienda con un email que contiene un script. Cuando un administrador abre ese mensaje, el script se ejecuta con su sesión: puede robar la cookie de administración, crear empleados o instalar módulos. El aviso oficial le da una puntuación CVSS de 9,3 sobre 10 (crítica), y el formulario de contacto público basta para colarlo: no hace falta tener cuenta.
Qué versiones están afectadas
Según el aviso oficial de PrestaShop, afecta a la 1.7, a la 8 y a la 9: todas las versiones anteriores a la 8.2.6 y las 9 anteriores a la 9.1.1. La 1.7 ya no tiene soporte y no recibe parche oficial.
Qué hacer
1. Actualizar
Con copia de seguridad, y si puedes en una copia de la tienda primero. Las notas de cada versión explican el cambio: PrestaShop 9.1.1 y PrestaShop 8.2.6.
2. Si no puedes actualizar ya: el módulo oficial
PrestaShop publicó un módulo de corrección, pshotfix_ghsaw9f3qc75qgx9, que funciona en 1.7, 8 y 9: guarda una copia de la plantilla vulnerable y aplica el arreglo al instalarse.
Antes de que saliera, circuló un módulo de parche hecho por un desarrollador ajeno al grupo. Un compañero avisó de que en una 1.7.8.10 la instalación falló y aun así modificó los ficheros, y otros encontraron fallos al aplicarlo dos veces y en versiones antiguas. Lección: en seguridad, el parche oficial y una copia de seguridad antes.
3. En 1.7, endurecer la validación del email
Para la 1.7, PrestaShop indicó en su aviso a la comunidad que se puede corregir el método Validate::isEmail (en 8 y 9, la solución manual lo pasa del modo laxo al estricto). Un compañero compartió un override con esa idea; esta versión rechaza también < y >:
<?php
// override/classes/Validate.php
class Validate extends ValidateCore
{
public static function isEmail($email)
{
if (strpbrk((string) $email, '<>"') !== false) {
return false;
}
return parent::isEmail($email);
}
}Después, borra el índice de clases (var/cache/prod/class_index.php en 1.7, y el de var/cache/dev si usas el modo depuración) para que PrestaShop cargue el override. Pruébalo antes en una copia de la tienda. Esto solo evita emails nuevos con esos caracteres: la plantilla sigue sin escapar, así que el módulo oficial sigue haciendo falta.
4. Buscar si ya te han colado algo
Antes de abrir mensajes en el back-office, mira la base de datos (cambia ps_ por tu prefijo):
SELECT id_customer, email, date_add FROM ps_customer
WHERE email LIKE '%<%' OR email LIKE '%>%' OR email LIKE '%"%';
SELECT id_customer_thread, email, date_add FROM ps_customer_thread
WHERE email LIKE '%<%' OR email LIKE '%>%' OR email LIKE '%"%';Si sale algo, no lo abras desde el back-office. Bórralo o corrígelo desde la base de datos, con copia antes, cambia las contraseñas de los empleados, cierra sus sesiones y revisa si hay empleados o módulos que no reconoces.
Esto salió en @PrestashopEsp, la mayor comunidad PrestaShop de España en Telegram. Ver la conversación