Brevo confirma el robo de una clave de Cloudflare para inyectar ClickFix en webs de clientes
La empresa de CRM y email marketing ha confirmado que una clave de Cloudflare incrustada en su código permitió inyectar scripts maliciosos en los sitios de sus clientes durante cinco horas y media.

Brevo ha confirmado que un atacante robó una clave de API de Cloudflare y la usó para inyectar scripts maliciosos tanto en sus propios dominios como en los ficheros JavaScript que sus clientes incrustan en sus webs. El vector fue un Worker malicioso que reescribía las respuestas en el edge del CDN durante unas cinco horas y media del 14 de septiembre.
La compañía de CRM y marketing por correo publicó ayer el informe posterior al incidente. Los dominios afectados son brevo.com, sendinblue.com, login/account/my/onboarding.brevo.com y sibforms.com. El Worker también tocó el script de formularios de Brevo, el widget de Brevo Conversations y los cargadores del SDK que los clientes embeben en sus páginas.
La clave era de larga vida, con permisos totales sobre la cuenta, y estaba hardcodeada en el código fuente de la aplicación. Con ella el atacante creó Workers, rutas y registros DNS en todas las zonas de Brevo sin disparar ninguna alerta. Brevo explica por qué nadie lo detectó: "Como el Worker reescribía las respuestas en el edge y eliminaba cabeceras de seguridad como Content-Security-Policy, nuestros servidores de origen y nuestros ficheros quedaron intactos y las comprobaciones de integridad habituales no vieron el cambio". El contenido malicioso nunca llegó a tocar los servidores de origen: solo existió en el edge.
Brevo fija la ventana de exposición entre las 16:07 y las 20:30 UTC. Sansec, la firma que dio la voz de alarma y firmó la investigación del ataque, maneja un intervalo de 16:05 a 20:13 UTC y estima que el incidente pudo alcanzar hasta 100.000 webs que usan componentes de Brevo. La compañía sostiene que la clave podría estar comprometida desde finales de agosto, aunque no hay rastro de actividad maliciosa anterior. Todos los subdominios maliciosos dejaron de resolver el 15 de septiembre.
La respuesta fue retirar el Worker y sus rutas, revocar la clave y las credenciales creadas con ella, eliminar la credencial hardcodeada del código fuente, borrar los hostnames controlados por el atacante y purgar las cachés del edge. Según su versión, app.brevo.com, la API, la infraestructura de envío de correo y los datos de las cuentas de cliente no se vieron afectados.
ClickFix y un plugin de WordPress con puerta trasera
A los visitantes se les mostraba una falsa página de verificación de Cloudflare y, detrás, instrucciones ClickFix para ejecutar un comando en Windows. En las webs WordPress que llevaban el widget afectado, el script comprobaba además si el visitante tenía sesión de administrador y, en ese caso, intentaba subir un plugin malicioso desde https://cdn10.sendibt1[.]com/p/wm.zip.
BleepingComputer localizó ese archivo en VirusTotal. Se hace pasar por un plugin llamado "Web Media Optimizer" y en realidad es una puerta trasera persistente y un cargador de JavaScript. Se oculta de la lista de plugins, se copia en el directorio must-use para persistir y consulta periódicamente https://glegchner.com/ads.php. Esa URL devuelve una dirección codificada en Base64 que apunta a https://corralos[.]beer/a412dkoq.js, el JavaScript que el plugin inyecta en las páginas. Guarda una copia de la última URL válida para seguir sirviendo código si el servidor remoto cae, y lleva una clave de autenticación hardcodeada que permite generar una sesión válida de administrador de WordPress sin conocer la contraseña. Otros dominios vistos distribuyendo el plugin son yelahaye[.]surf y boiseno[.]club.
El 10 de septiembre Brevo ya había publicado otro incidente, en este caso de SSO, en el que atacantes secuestraban cuentas de clientes para lanzar campañas de phishing. Trezor fue una de las víctimas: 347.000 direcciones de correo alcanzadas y al menos 2.500 comprometidas. Brevo no ha respondido a si ambos episodios están relacionados.
Quien administre WordPress y visitara un sitio afectado con la sesión abierta el 14 de septiembre debería revisar los plugins instalados o activados ese día, borrarlos y rotar las contraseñas de administrador.


