Hackers infectan 953 tiendas online con JavaScript que evade escáneres, en su mayoría Magento

Una campaña prolongada que comenzó en julio de 2025 ha logrado comprometer 953 comercios electrónicos, en su mayoría basados en Magento. La compañía neerlandesa de ciberseguridad para e-commerce Sansec atribuye la actividad a un atacante no identificado que inserta un fragmento de código en las páginas de las tiendas para entregar cargadores de JavaScript malicioso a través de bloques CMS de Magento.

El funcionamiento descrito por Sansec consiste en que, al visitar la página infectada, el navegador consulta a un servidor controlado por el grupo qué debe ejecutar a continuación. Ese servidor comprueba primero si el visitante es un comprador real o un escáner de seguridad, de modo que las herramientas de análisis no reciben respuesta alguna.

Dominios implicados en la campaña

A lo largo del tiempo se han identificado al menos cinco dominios distintos vinculados a la operación, con fechas de primera detección que abarcan desde mediados de 2025 hasta finales de 2026.

  • manulfie[.]click, detectado por primera vez en julio de 2025
  • neswnsssn[.]click, detectado por primera vez en diciembre de 2025
  • lanhd6549tdhse[.]top, detectado por primera vez en marzo de 2026
  • additionalver[.]com, detectado por primera vez en junio de 2026
  • deepveindrilling[.]com, detectado por primera vez en octubre de 2026

Sansec señala que deepveindrilling[.]com apareció en los bloques CMS de 83 tiendas desde que el dominio fue registrado el 6 de octubre de 2026. Este dominio aloja el cargador JavaScript más reciente detrás de Cloudflare y solo responde a solicitudes de script provenientes de visitantes reales de las tiendas comprometidas.

Mecanismo de infección y persistencia

El cargador se aloja en la tabla cms_block de la base de datos de Magento, utilizada para renderizar contenido estático en las páginas de la tienda. El objetivo final del ataque es ejecutar el código controlado por el adversario cuando el bloque CMS se renderiza tras la visita de un comprador. Sansec no precisa si el atacante modifica un bloque existente —como el encabezado, el pie de página o un banner promocional— o crea uno nuevo; ambas vías permitirían ejecutar el cargador.

Se han observado dos variantes del cargador. Una de ellas almacena la carga útil en el localStorage del navegador, de modo que el código guardado se vuelve a ejecutar en visitas posteriores incluso si el dominio externo deja de estar disponible. La segunda variante añade comprobaciones de huella digital del navegador para filtrar bots y escáneres de seguridad y garantizar que solo los compradores reales reciban el código malicioso. La naturaleza exacta de la carga útil final sigue siendo desconocida.

Las primeras iteraciones de la campaña usaban Keitaro, una plataforma de seguimiento publicitario y analítica, como sistema de distribución de tráfico (TDS) para dirigir a los visitantes a respuestas distintas —una carga útil, una redirección o nada— en función de sus características. Según Sansec, solicitar el script de additionalver[.]com simulando un visitante de escritorio con Windows devolvía la respuesta «QWE=123;», que no hace nada salvo establecer una cookie que marca al visitante durante 24 horas. El dominio deepveindrilling[.]com, en cambio, prescinde del componente Keitaro e integra la lógica de filtrado de bots directamente en el cargador.

Vectores de acceso inicial

En cuanto a la vía de entrada, se estima que 471 tiendas Magento fueron inyectadas con el cargador a través de la vulnerabilidad PolyShell (también conocida como CVE-2026-48356). Otras 102 tiendas recibieron archivos subidos mediante las vulnerabilidades PolyShell o SessionReaper (CVE-2025-54236).

Una tienda con Magento 2.4.7-p1 tenía webshells de PolyShell camufladas como imágenes PNG en pub/media/custom_options/quote/, junto al cargador de additionalver.com en un bloque CMS. El bloque cambió a deepveindrilling[.]com el 7 de octubre. La tienda sigue sin el APSB26-73, la corrección de PolyShell de Adobe para las líneas de versión con soporte.

En otro caso, una tienda con Magento 2.4.7-p10 y sin parches principales pendientes fue comprometida para crear una cuenta de administrador fraudulenta y usarla después para inyectar el código.

Recomendaciones y contexto

Sansec aconseja a los propietarios de tiendas auditar sus sitios en busca de cuentas sospechosas y bloques CMS inesperados en las tablas cms_block y cms_page, además de mantener el software actualizado y aplicar contraseñas robustas.

La revelación coincide con el contexto de PHP2Shell, un conjunto de dos vulnerabilidades críticas en PHP (CVE-2026-109618 y CVE-2026-109619) que han registrado intentos de explotación masivos desde su divulgación la semana pasada. El investigador de Perplexity Adel Karimi ha documentado lo que parece ser la primera explotación exitosa en entornos reales para ejecutar comandos de shell en servidores honeypot. Esos comandos empleaban wget, curl o la CLI de PHP para descargar cargas adicionales desde un servidor remoto («162.35.99[.]94:80»). Hasta ahora no se han observado artefactos de segunda fase descargados.

Cybersecurity
Cybersecurity
Cybersecurity
Cybersecurity

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *