Hackers modificaram um arquivo JavaScript (linguagem de script para web) veiculado pela empresa de tecnologia publicitária Adform, transformando-o em uma ferramenta do lado do navegador que reescreve endereços de carteiras de criptomoedas.
A Adform detectou o incidente em 27 de julho de 2026, removeu o código malicioso, notificou os clientes afetados e comunicou o caso às autoridades.
Qualquer pessoa que visitou um site com o script afetado em 27 de julho e copiou um endereço de Bitcoin, Ethereum ou Tron pode ter colado, em seu lugar, um endereço diferente inserido pelo código malicioso.
A Adform está orientando as pessoas a limpar o cache do navegador, pois o arquivo alterado pode permanecer em cache após a correção, e a conferir qualquer endereço de carteira antes de enviar fundos.
A Adform afirma que o código não foi projetado para instalar software nem manter persistência, e operou apenas enquanto a página afetada permaneceu aberta. A amostra capturada também reescreve endereços inseridos diretamente em campos de formulário, de modo que a cópia pela área de transferência não foi o único caminho para a substituição.
A linha do tempo pública ainda não está fechada. O aviso da Adform indica 27 de julho como a data afetada; o pesquisador Kevin Beaumont afirma ter visto atividade maliciosa veiculada pela Adform ao longo da semana passada.
O recurso comprometido é o trackpoint-async.js, veiculado a partir de s2.adform[.]net. A documentação de implementação da Adform informa que o código de rastreamento pode rodar em uma página, em várias seções ou de forma incondicional em todo o site. Comprometer esse recurso compartilhado abriu aos atacantes um caminho para sites não relacionados a jusante, sem que precisassem invadir cada um separadamente. O caminho de implantação compartilhado transforma este caso em um comprometimento da cadeia de fornecedores (supply chain).
Enquanto a página afetada permanecia aberta, um único endereço alterado no momento do pagamento podia redirecionar uma transferência.
Beaumont, pesquisador independente de segurança, divulgou o comprometimento e escreveu: "Mesmo que você perceba que o endereço está errado e copie novamente a carteira, ele continua substituindo". Beaumont relatou que o arquivo e seus URLs (endereços de páginas na internet), domínios e endereços IP (protocolo de internet) associados não apresentavam detecções no VirusTotal naquele momento. Max Maass publicou uma cópia capturada do script em 27 de julho.
A amostra capturada contém dois blocos maliciosos anexados à biblioteca legítima. Suas strings (sequências de caracteres) de substituição são ofuscadas com uma chave XOR (operação lógica "ou exclusivo") de seis bytes. O primeiro observa o evento de cópia, tenta ler a área de transferência a cada quatro segundos e substituir endereços compatíveis.
Ele também tenta, no carregamento da página, uma requisição HTTP (protocolo de transferência de hipertexto) para 84.32.102[.]230:7744, incluindo o nome de host e o caminho da página visitada.
O segundo bloco percorre os nós de texto do documento, reescreve valores em elementos input, textarea e contenteditable e restaura a posição do cursor após cada reescrita. Ele intercepta o setter (método que define valor) em elementos input e textarea, de modo que escritas programáticas sejam reescritas em trânsito.
O código também intercepta eventos de copiar, recortar, colar e digitação. Ambos os blocos contêm strings de substituição fixas para padrões de endereço de Bitcoin, Ethereum e Tron, e Beaumont afirmou que os endereços pareciam variar.
A Adform afirma não ter encontrado evidências de que o código tenha transmitido os endereços IP dos visitantes ou informações sobre os sites que eles visitaram. Acrescentou, em seu aviso de incidente, que "a análise técnica indica que essa transmissão pode ter sido possível". A requisição do primeiro payload (carga útil, bloco de código malicioso) é construída para enviar nome de host e caminho da página a um servidor externo; se de fato chegou ao operador, isso não é estabelecido pela amostra.
A maior parte do escopo ainda está em aberto: quantos sites carregavam o arquivo, quantos visitantes foram expostos, como os atacantes chegaram ao caminho de implantação da Adform e se algum fundo foi desviado. A diferença de duração também impede uma estimativa defensável de exposição, já que a declaração da Adform sobre a data de 27 de julho e a observação mais longa de Beaumont seguem sem reconciliação. O aviso público de incidente da Adform não lista indicadores de comprometimento.
O relatório anual de 2025 da Adform informa que a empresa tinha cerca de 1.800 clientes, viabilizava a exibição diária de 1,5 bilhão de anúncios e veiculava ou transacionava anúncios em mais de 180 países durante 2025.
Esses números descrevem a plataforma, não este incidente. Um dado mais útil seria quantos carregamentos de página efetivamente receberam o recurso alterado, contagem que a Adform não publicou. A Adform não identificou publicamente o atacante.