Un ataque a la CDN de Awesome Motive expone sitios WordPress a backdoors

Un ataque de cadena de suministro ha afectado a sitios WordPress que cargaban JavaScript desde la infraestructura de Awesome Motive, el grupo detrás de productos como OptinMonster, TrustPulse y PushEngage. El incidente no consistió en comprometer directamente cada web afectada, sino en alterar temporalmente scripts servidos desde dominios legítimos del proveedor, una vía especialmente peligrosa porque los sitios confiaban en esos recursos externos de forma automática.

La campaña fue detectada por Sansec y posteriormente reconocida por el equipo de OptinMonster y TrustPulse. El código malicioso se distribuyó a través de archivos JavaScript usados por los productos afectados y se activaba solo cuando un administrador de WordPress visitaba una página del sitio con la sesión iniciada. El objetivo era claro: aprovechar los permisos del administrador para crear una cuenta fraudulenta, instalar un plugin de puerta trasera y mantener el control del sitio incluso después de que el script manipulado dejara de servirse.

El caso recuerda por qué los ataques de cadena de suministro preocupan tanto en WordPress. No hace falta explotar miles de instalaciones una por una si se puede envenenar un recurso común que muchas webs cargan desde una CDN. En este tipo de incidentes, la confianza en el proveedor se convierte en el canal de entrada.

Un script legítimo convertido en vector de ataque

Los archivos afectados incluían scripts como api.min.js, servidos desde dominios asociados a OptinMonster y TrustPulse, además del SDK de PushEngage. En el caso de OptinMonster y TrustPulse, Sansec situó la exposición observada el 12 de junio de 2026 entre las 22:17 UTC y las 22:42 UTC, aunque el aviso oficial hablaba de una ventana de unas horas mientras continuaba la investigación. Para PushEngage, las evidencias recopiladas por investigadores indicaban que el código malicioso siguió sirviéndose más tiempo, al menos hasta el 13 de junio.

El impacto potencial es elevado porque OptinMonster cuenta con más de un millón de instalaciones o sitios que usan su tecnología, mientras TrustPulse y PushEngage amplían la superficie. Sansec estimó que el ataque podía alcanzar a más de 1,2 millones de sitios, aunque no todos habrían quedado comprometidos. La infección real dependía de una condición concreta: que un administrador estuviera autenticado y cargara una página del sitio durante la ventana de exposición.

ProductoRecurso afectadoObservación principal
OptinMonstera.omappapi.com/app/js/api.min.jsScript manipulado servido desde CDN
OptinMonstera.opmnstr.com/app/js/api.min.jsRecurso legítimo usado por sitios cliente
OptinMonstera.optnmstr.com/app/js/api.min.jsCarga externa desde dominios del proveedor
TrustPulsea.trstplse.com/app/js/api.min.jsVentana de exposición el 12 de junio
PushEngageclientcdn.pushengage.com/sdks/pushengage-web-sdk.jsEvidencias de exposición más prolongada

La mecánica del ataque lo hacía más silencioso. Los visitantes normales no eran el objetivo inicial. El payload esperaba a un usuario con privilegios de administrador. Cuando detectaba ese contexto, intentaba capturar tokens de autenticación y nonces de WordPress, piezas necesarias para ejecutar acciones sensibles dentro del CMS.

De una visita del administrador a una puerta trasera

Una vez activado, el JavaScript malicioso intentaba crear una cuenta de administrador oculta o fraudulenta. Entre los indicadores observados aparecen usuarios como developer_api1 y cuentas con patrón dev_xxxxxx. Después, el ataque instalaba un plugin de backdoor diseñado para ocultarse del panel de WordPress, lo que complica la detección si el administrador se limita a revisar la lista de plugins desde la interfaz.

Ese plugin ofrecía capacidades graves: web shell, gestión de archivos y ejecución arbitraria de código PHP. En términos prácticos, el atacante podía modificar el sitio, leer ficheros, añadir persistencia, robar información o pivotar hacia otros sistemas si el servidor estaba mal segmentado.

Fase del ataqueQué hacía
Carga del scriptEl sitio recibía JavaScript manipulado desde la CDN
Detección del administradorEl código esperaba a una sesión WordPress con privilegios
Recolección de tokensIntentaba obtener nonces y elementos de autenticación
Creación de usuarioAñadía una cuenta de administrador fraudulenta
Instalación de pluginDesplegaba un backdoor oculto en wp-content/plugins
ExfiltraciónEnviaba credenciales y datos del sitio a infraestructura atacante
PersistenciaMantenía el acceso aunque la CDN ya estuviera limpia

Los nombres del plugin malicioso también variaban para parecer legítimos. Se observaron disfraces como Content Delivery Helper (content-delivery-helper, versión 2.7.1) y Database Optimizer (database-optimizer, versión 2.9.4). También se identificó el dominio tidio.cc, una imitación de tidio.com, como infraestructura asociada a la recepción de datos robados.

El origen: una clave de CDN robada

Según el aviso oficial de OptinMonster y TrustPulse, el punto de entrada estuvo en un servidor de marketing separado de la infraestructura principal. El atacante habría explotado una vulnerabilidad conocida en el plugin UpdraftPlus instalado en ese entorno, y desde allí localizó una clave API de la cuenta de CDN.

Ese matiz es relevante. Awesome Motive afirma que sus servidores de aplicación, su código fuente y los sistemas que almacenan información de cuentas de OptinMonster y TrustPulse estaban separados y no fueron comprometidos. También señala que no tiene evidencias de acceso a datos personales o datos de cuenta alojados por el proveedor. El problema, aun así, fue serio porque la clave de CDN permitía modificar los archivos que millones de webs cargaban como parte de su funcionamiento.

ElementoEstado comunicado
Servidor de marketingComprometido mediante una vulnerabilidad conocida
Clave API de CDNSustraída y usada para alterar scripts
CDNSirvió archivos JavaScript manipulados durante la ventana afectada
Servidores de aplicaciónSegún el proveedor, no comprometidos
Código fuente del proveedorSegún el proveedor, no comprometido
Sistemas con datos de cuentaSegún el proveedor, sin evidencias de acceso

El proveedor indica que revirtió los cambios, purgó la caché de la CDN, rotó credenciales, migró el sitio de marketing a un nuevo servidor y trabajó con su proveedor de CDN para obtener registros de entrega más detallados.

El problema para las webs afectadas es que limpiar la CDN no elimina una puerta trasera ya instalada. Si el administrador visitó el sitio durante la ventana de exposición y el script consiguió ejecutar la cadena completa, el atacante pudo mantener acceso local mediante una cuenta fraudulenta y un plugin oculto.

Qué deben revisar los administradores de WordPress

La recomendación principal es no confiar únicamente en el panel de WordPress. El backdoor estaba diseñado para ocultarse de la interfaz, por lo que la revisión debe hacerse desde el sistema de ficheros y con escaneo del lado del servidor.

Los sitios que tenían OptinMonster o TrustPulse activos y un administrador autenticado durante el 12 de junio deberían tratarse como potencialmente comprometidos hasta que se compruebe lo contrario. En el caso de PushEngage, conviene ampliar la revisión a los días posteriores por la exposición más prolongada indicada por investigadores.

Revisión recomendadaQué buscar
Usuarios administradoresdeveloper_api1, cuentas dev_xxxxxx o cualquier alta desconocida
Sistema de ficherosDirectorios content-delivery-helper o database-optimizer
Plugins ocultosComponentes que no aparecen en el panel pero sí en disco
Logs de tráficoConexiones hacia tidio.cc
wp-content/pluginsArchivos PHP no reconocidos o recién modificados
mu-pluginsPersistencia fuera del listado normal de plugins
Cron y tareas programadasEjecuciones sospechosas o scripts nuevos
wp-config.phpCambios no autorizados o claves expuestas

Si aparece cualquiera de esos indicadores, la respuesta debe asumir compromiso total del sitio. Eso implica eliminar usuarios maliciosos, borrar el plugin oculto, ejecutar un escaneo completo, revisar cambios recientes, rotar contraseñas de administradores, claves API, credenciales de base de datos y las keys y salts de WordPress.

También conviene revisar copias de seguridad previas, pero con cuidado. Restaurar sin cerrar el vector de persistencia puede devolver el sitio a un estado vulnerable. En incidentes de este tipo, la limpieza debe combinar recuperación, rotación de credenciales y análisis forense básico.

Una lección sobre dependencias externas

Este incidente deja una lección incómoda para administradores de WordPress: un plugin puede estar actualizado y aun así cargar código malicioso si el recurso externo que consume ha sido manipulado. La seguridad ya no depende solo de instalar parches en el CMS, sino también de revisar qué scripts externos se ejecutan con privilegios en el contexto del sitio.

Los servicios de marketing, analítica, formularios, popups, notificaciones, chat, mapas, píxeles publicitarios o personalización suelen inyectar JavaScript remoto. Esa arquitectura es cómoda y permite actualizar funcionalidades sin que el usuario haga nada, pero también crea un punto de concentración de riesgo. Si el proveedor o su CDN cae, muchos sitios pueden cargar el problema a la vez.

Riesgo de scripts externosMedida defensiva
Código servido desde tercerosInventario de dominios y recursos cargados
Cambios invisibles para el administradorMonitorización de integridad y CSP
Ejecución con sesión iniciadaSeparar navegación administrativa y pública
Dependencia de CDNRevisar proveedores críticos y logs
Robo de claves APIRotación periódica y privilegios mínimos
Backdoors ocultosEscaneo de servidor y revisión del sistema de ficheros

En WordPress, además, el impacto puede escalar rápido porque muchos sitios comparten los mismos plugins y patrones de configuración. Un proveedor con una gran base instalada se convierte en una pieza de infraestructura para millones de webs.

Por qué este ataque se parece al caso Polyfill

Sansec comparó la campaña con el ataque a Polyfill de 2024: un archivo de apariencia legítima, servido desde una fuente de confianza, terminó distribuyendo código malicioso a miles de sitios. La lógica es la misma. El atacante busca una pieza común, no el sitio final. Si consigue modificar esa pieza, la distribución la hacen las propias víctimas al cargar el recurso.

La diferencia es que en este caso el payload estaba orientado a tomar el control de WordPress desde el lado administrador. No buscaba, al menos en la fase observada, atacar directamente a visitantes anónimos. Eso no reduce la gravedad. Un atacante con control de un WordPress puede después modificar el sitio para servir malware, robar pagos, redirigir tráfico, crear phishing, insertar SEO spam o exfiltrar datos de usuarios.

La fase inicial fue corta en OptinMonster y TrustPulse, pero suficiente para generar riesgo persistente. En ciberseguridad, una ventana de 25 minutos puede bastar si el objetivo es capturar administradores activos y dejar backdoors permanentes.

Medidas para reducir el riesgo en el futuro

No existe una defensa única contra ataques de cadena de suministro vía CDN, pero sí capas que reducen impacto. La primera es mantener WordPress y plugins actualizados, incluida cualquier instalación auxiliar o servidor de marketing. El punto de entrada comunicado por el proveedor fue una vulnerabilidad conocida en UpdraftPlus en un entorno separado, lo que muestra que los sistemas secundarios también importan.

La segunda es aplicar privilegio mínimo a claves de CDN y APIs. Una clave capaz de modificar scripts que se sirven a millones de sitios debe estar muy protegida, con rotación, registro de actividad, controles de acceso y alertas ante cambios no habituales.

Para los sitios finales, la autenticación multifactor en administradores, la separación de cuentas, el bloqueo de edición de archivos desde WordPress, la monitorización de integridad, las políticas CSP bien diseñadas y los escaneos del lado del servidor pueden marcar la diferencia.

Capa defensivaBeneficio
MFA en administradoresDificulta abuso directo de cuentas
Revisión periódica de usuariosDetecta altas no autorizadas
Escaneo de ficherosEncuentra plugins ocultos o web shells
Rotación de salts y credencialesCorta sesiones y accesos persistentes
CSP y control de scriptsLimita ejecución de fuentes externas
Monitorización de integridadDetecta cambios inesperados en archivos
Backups verificadosPermiten recuperación controlada
Segmentación de servidoresReduce movimiento lateral

El incidente también debería empujar a proveedores de plugins a revisar cómo almacenan claves de distribución, cómo protegen sitios de marketing y qué permisos tienen las cuentas de CDN. La separación de infraestructura es positiva, pero si un entorno no productivo guarda credenciales críticas, puede convertirse en la llave de producción.

WordPress necesita mirar más allá del plugin instalado

El ataque a la CDN de Awesome Motive no es solo una alerta para usuarios de OptinMonster, TrustPulse o PushEngage. Es un recordatorio para todo el ecosistema WordPress. La confianza en proveedores externos es inevitable, pero debe gestionarse como riesgo real. Cada script remoto, cada clave API y cada integración SaaS amplía la superficie de ataque.

El administrador que solo actualiza plugins y revisa el panel está viendo una parte del problema. La seguridad moderna de WordPress exige mirar el servidor, los logs, las conexiones salientes, los usuarios, los mu-plugins, las tareas programadas y los recursos de terceros. También exige saber qué dependencias son críticas y qué ocurriría si una de ellas sirve código manipulado durante media hora.

La buena noticia es que el proveedor reaccionó, limpió la CDN y publicó indicadores de compromiso. La mala es que los sitios comprometidos no se limpian solos. Si el backdoor llegó a instalarse, seguirá allí hasta que alguien lo elimine.

Este es el verdadero mensaje del incidente: en la cadena de suministro, la ventana de exposición puede cerrarse rápido, pero la persistencia local puede quedarse mucho más tiempo. Para WordPress, esa diferencia es la línea entre un susto y una intrusión completa.

Preguntas frecuentes

¿Qué ocurrió con OptinMonster, TrustPulse y PushEngage?

Se alteraron scripts JavaScript servidos desde la CDN de Awesome Motive. Los sitios que cargaban esos recursos pudieron recibir código malicioso durante la ventana de exposición.

¿Todos los visitantes estaban afectados?

No. El código se activaba cuando un administrador de WordPress visitaba una página del sitio con la sesión iniciada. Los visitantes comunes no eran el objetivo inicial.

¿Qué hacía el código malicioso?

Intentaba recolectar tokens y nonces de WordPress, crear una cuenta de administrador fraudulenta e instalar un plugin de backdoor oculto con capacidad de ejecución de código.

¿Qué indicadores deben revisar los administradores?

Deben buscar cuentas como developer_api1 o dev_xxxxxx, plugins ocultos como content-delivery-helper o database-optimizer, y conexiones hacia tidio.cc.

¿Basta con que Awesome Motive haya limpiado la CDN?

No. Si un sitio ya fue comprometido, la cuenta fraudulenta y el plugin de backdoor pueden seguir instalados. Cada administrador debe revisar y limpiar su propio WordPress.

¿Qué medidas conviene aplicar?

Eliminar usuarios sospechosos, revisar wp-content/plugins desde el servidor, ejecutar escaneo antimalware, rotar contraseñas, claves API, credenciales de base de datos y las keys y salts de WordPress.

vía: infosecurity-magazine

Editor WPDirecto

Editor de WPDirecto potenciado con IA con el apoyo del equipo de edición.

Te puede interesar...

    Deja una respuesta

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

    WordPress Directo
    WPDirecto.com es una revista especializada en WordPress y WooCommerce que ofrece una amplia gama de recursos, incluyendo tutoriales, análisis de plugins y plantillas, consejos de optimización y estrategias de SEO, para ayudar a los usuarios a mejorar y personalizar sus sitios web, manteniéndolos informados sobre las últimas novedades y tendencias en el mundo de WordPress.

    © 1995-2025 Color Vivo Internet, SLU (Medios y Redes Online).. Otros contenidos se cita fuente. Infraestructura cloud servidores dedicados de Stackscale.