Durante cerca de una semana bastaba con visitar una web corriente para que un pago en criptomoneda acabara en manos de un desconocido. El ataque a la cadena de suministro de Adform metió código malicioso dentro de un script de seguimiento servido por una de las mayores firmas europeas de tecnología publicitaria, y cada sitio que incrusta ese script pasó el código directamente a sus visitantes. El investigador de seguridad Kevin Beaumont lo descubrió el 27 de julio de 2026. Ningún motor antivirus lo había marcado.
Cómo funcionó el ataque a la cadena de suministro de Adform
El archivo comprometido era trackpoint-async.js, el rastreador JavaScript de Adform servido desde s2.adform.net e incrustado en los sitios de sus clientes. Alguien añadió código ofuscado al final de la biblioteca legítima, de modo que el archivo seguía haciendo su trabajo normal mientras transportaba una carga útil. En el equipo del visitante no se instalaba nada. El script simplemente se ejecutaba en la página, como cualquier otro que el sitio hubiera decidido cargar.
Lo que hacía allí era estrecho y eficaz. Según el análisis de Beaumont, el código consultaba el portapapeles cada tres segundos y comparaba el contenido con los formatos de direcciones de Bitcoin, Ethereum y TRON y, si había coincidencia, la sustituía por una cartera controlada por el atacante. Las direcciones de reemplazo variaban. Volver a copiar la dirección correcta no servía, porque la siguiente consulta la sustituía de nuevo. El análisis posterior mostró que el código también podía reescribir direcciones mostradas en la página y escritas en campos de formulario, así que el portapapeles no era la única vía.
La parte que no iba de criptomonedas
La misma infraestructura recogía inteligencia en silencio. Además del cambio de carteras, los scripts servidos a través de Adform contactaban con el servidor 84.32.102.230 en el puerto 7744 y enviaban la dirección IP del visitante, el sitio en el que estaba y la ruta de la página que veía. Es un sistema de rastreo funcional montado encima de otro sistema de rastreo, en beneficio de quien controlaba el código malicioso. Quien sostenía que los scripts publicitarios son solo una molestia para la privacidad ya tiene un contraejemplo: la misma tubería que informa de su navegación a un anunciante puede informar a un atacante.
Una semana de silencio y veredictos antivirus limpios
La muestra más antigua recuperada procede de una captura de Archive.org del 26 de julio de 2026, y Beaumont observó actividad maliciosa a través de Adform durante la semana anterior. En todo ese tiempo el archivo, las URL, el dominio y la IP del atacante figuraban como limpios en todos los proveedores de VirusTotal. Esa es la parte incómoda. La carga útil no se escondía en un rincón oscuro de internet: la servía una empresa cuyo alcance Beaumont sitúa en unas 14.000 compañías clientes y alrededor del 30 por ciento del mercado de plataformas de compra publicitaria, y la industria de la seguridad no lo vio. El código malicioso empezó a desaparecer mientras él redactaba sus hallazgos.
Qué hizo Adform y qué deben hacer los visitantes
Adform confirmó el incidente, eliminó el código malicioso, avisó a los clientes afectados y lo comunicó a las autoridades. La compañía afirma que el código no estaba diseñado para instalar software ni para persistir en el dispositivo, y que solo funcionaba mientras una página afectada permaneciera abierta. También pidió a los usuarios vaciar la caché y las cookies del navegador, porque una copia cacheada del archivo modificado puede seguir ejecutándose tras la corrección. La lista práctica para quien mueva criptomonedas es corta: vaciar la caché, verificar la dirección de destino en el dispositivo que recibe y no en la página desde la que se copió, y enviar una pequeña transacción de prueba antes de una grande.
Un script, miles de puertas de entrada
Esta es la forma de los ataques modernos a la cadena de suministro. Nadie asaltó 14.000 empresas. Se comprometió a un proveedor y 14.000 empresas entregaron el resultado a sus visitantes, porque un script de terceros se ejecuta con los mismos privilegios que el sitio que lo carga. La versión de privacidad de este problema ya la contamos cuando ChatGPT enviaba en silencio resúmenes de consultas a Meta mediante el píxel de Facebook, y la versión automatizada cuando un agente de IA escapó de su entorno aislado y envenenó un repositorio público de paquetes. La defensa no ha cambiado: bloquear por defecto scripts de terceros y rastreadores, porque cada uno que permite es una empresa a la que concede ejecución de código en su máquina. La forma práctica de esa regla es un bloqueador de contenido como uBlock Origin, y adform.net figura en las listas de rastreadores estándar que usan esas herramientas, así que mucha gente con uno instalado nunca recibió el archivo. Una VPN oculta desde qué red se conecta, y justamente eso registraba este baliza, pero ninguna VPN detiene un script que el propio sitio invitó.