Brevo ha confirmado un ataque a su cadena de suministro después de que ciberdelincuentes consiguieran una clave API de Cloudflare y la utilizaran para introducir scripts maliciosos en sus propias páginas y en componentes JavaScript integrados en los sitios web de sus clientes.
El ataque permitió distribuir la técnica conocida como ClickFix, que muestra a las víctimas una falsa verificación de Cloudflare y las convence para ejecutar manualmente comandos maliciosos en Windows. La empresa de seguridad Sansec estima que el incidente pudo afectar potencialmente a hasta 100.000 sitios web que utilizaban los componentes comprometidos de Brevo.
Una clave de Cloudflare almacenada en el código
El origen del incidente estuvo en una clave API de Cloudflare de larga duración que había sido incluida directamente en el código fuente de una aplicación. Además, la credencial disponía de permisos completos sobre la cuenta.
Una vez obtenida, los atacantes pudieron crear Cloudflare Workers, modificar rutas y generar registros DNS en las zonas de Brevo sin activar ninguna alerta.
Los ciberdelincuentes utilizaron esa capacidad para crear un Worker malicioso que modificaba el contenido directamente desde la infraestructura CDN de Cloudflare. La actividad se mantuvo durante aproximadamente cinco horas y media el 14 de septiembre.
La técnica tenía además una ventaja para los atacantes: los servidores originales de Brevo permanecían intactos. El Worker modificaba las respuestas en el extremo de la red y eliminaba cabeceras de seguridad como Content-Security-Policy (CSP), por lo que los controles de integridad convencionales no detectaron las modificaciones.
El ataque llegó a las páginas de los clientes
La actividad afectó a diferentes páginas de Brevo y Sendinblue, pero el problema se extendió más allá de la propia infraestructura de la compañía.
Los atacantes también modificaron componentes que otras páginas incorporaban directamente, entre ellos el script de formularios de Brevo, el widget Brevo Conversations y los cargadores del SDK de Brevo.
Precisamente por esta dependencia de terceros, Sansec calcula que hasta 100.000 páginas podrían haber utilizado alguno de los componentes afectados durante el periodo de exposición. Esa cifra representa sitios potencialmente expuestos, no 100.000 infecciones confirmadas.
Una falsa comprobación de Cloudflare para infectar Windows
Los visitantes que accedían a las páginas afectadas podían encontrarse con una falsa pantalla de verificación de Cloudflare. Después aparecían instrucciones de ClickFix que intentaban convencer al usuario para ejecutar un comando en Windows.
ClickFix se basa precisamente en conseguir que sea la propia víctima quien copie, pegue o ejecute determinadas instrucciones bajo la apariencia de solucionar un problema, superar una comprobación de seguridad o completar un CAPTCHA.
Este método permite a los atacantes aprovechar herramientas legítimas del sistema para iniciar la cadena de infección, por lo que una supuesta verificación web que solicite abrir herramientas de Windows, pegar comandos o ejecutarlos manualmente debe considerarse una señal de alerta.
Los administradores de WordPress también estaban en el punto de mira
El ataque incorporaba además un mecanismo específico contra WordPress. Cuando una página utilizaba uno de los widgets afectados de Brevo, el código comprobaba si el visitante había iniciado sesión como administrador.
En ese caso, intentaba instalar un complemento malicioso denominado Web Media Optimizer. El análisis realizado por BleepingComputer determinó que, pese a presentarse como un plugin legítimo, funcionaba como una puerta trasera persistente y como cargador de JavaScript.
Una vez instalado, el complemento se ocultaba de la lista habitual de plugins de WordPress y se copiaba al directorio de complementos obligatorios para mantener la persistencia. Además, se comunicaba periódicamente con infraestructura controlada por los atacantes para obtener nuevo código.
El plugin contenía incluso una clave de autenticación integrada que permitía generar una sesión válida de administrador de WordPress sin conocer la contraseña de la cuenta.
Brevo sitúa la ventana de exposición entre las 16:07 y las 20:30 UTC del 14 de septiembre. Tras detectar el incidente, eliminó el Worker y sus rutas, revocó la clave comprometida y las credenciales creadas a partir de ella, retiró la credencial de su código fuente, eliminó los dominios controlados por los atacantes y limpió las cachés de su infraestructura.
La compañía asegura que app.brevo.com, su API, su infraestructura de envío de correo electrónico y los datos de las cuentas de clientes no se vieron afectados por este incidente.

































