Ce qui s'est passé, factuellement

Fin juillet 2026, le chercheur en sécurité Kevin Beaumont repère un comportement anormal dans trackpoint-async.js, le script de mesure d'audience d'Adform, servi depuis le domaine s2.adform.net. Adform est un fournisseur danois de technologie publicitaire ; sur son ampleur, les chiffres divergent — environ 14 000 entreprises clientes selon le chercheur, près de 1 800 selon le rapport annuel 2025 de l'entreprise. Aucun des deux ne dit ce qui compterait vraiment ici : combien de pages ont réellement été servies avec le fichier modifié, un nombre que personne n'a publié. Ce qui est certain, c'est qu'un fichier unique est appelé par tous les sites qui utilisent cette balise de mesure.

Le code inséré dans ce fichier faisait deux choses. Il surveillait le presse-papiers du visiteur : dès qu'une adresse de portefeuille Bitcoin, Ethereum ou TRON y était copiée, il la remplaçait par une adresse contrôlée par l'attaquant. Et il réécrivait les adresses affichées dans la page elle-même, en parcourant le texte et les champs de formulaire. Autrement dit, l'internaute copiait ce qu'il voyait à l'écran et collait autre chose, sans jamais quitter un site parfaitement légitime.

Adform indique avoir détecté l'activité suspecte et retiré le code le 27 juillet 2026. La durée réelle d'exposition, elle, n'est pas établie : le chercheur dit avoir observé l'activité malveillante au cours de la semaine écoulée, tandis que le plus ancien exemplaire archivé retrouvé date du 26 juillet. The Hacker News écrit sans détour que la chronologie publique n'est pas tranchée. Un point, en revanche, ne fait débat nulle part : aucun moteur antivirus de VirusTotal ne signalait ce fichier.

Un détail prolonge l'affaire au-delà du retrait : Adform a demandé aux internautes de vider le cache de leur navigateur, le fichier modifié pouvant y subsister après correction. Autrement dit, un script tiers compromis ne disparaît pas de vos pages le jour où le fournisseur le corrige — il disparaît au rythme des caches de vos visiteurs.

Une précision de méthode, parce qu'elle change la lecture : les déclarations d'Adform émanent d'une partie prenante. L'entreprise affirme que le code n'était pas conçu pour installer un logiciel sur l'appareil du visiteur ni pour y persister, et qu'elle n'a pas de preuve que les adresses IP des visiteurs aient été transmises — tout en reconnaissant que cette transmission était possible. L'analyse du chercheur, elle, décrit un enregistrement de l'adresse IP et de l'URL consultée. Nous n'avons pas les moyens de trancher entre les deux, et nous ne le faisons pas.

Ce que ce n'est pas

Ce n'est pas une histoire de cryptomonnaies. Le vol d'adresses de portefeuille est ce que les attaquants ont choisi de monnayer ; ce n'est en rien la limite de ce que leur position permettait. Depuis l'intérieur d'une page, le même code aurait pu modifier un IBAN affiché sur une facture en ligne, lire ce qui est saisi dans un formulaire, ou rediriger un bouton de paiement. Le choix du butin est une décision de l'attaquant ; la capacité, elle, était celle de votre propre code.

Ce n'est pas non plus un piratage des sites concernés. Aucun d'eux n'a été forcé, aucun mot de passe d'administration n'a fuité, aucune faille de leur CMS n'a été exploitée. Ils ont simplement fait ce qu'on leur avait demandé de faire : charger un fichier chez un prestataire, et l'exécuter.

Le mécanisme, en une ligne de code

Une balise <script src="https://exemple-tiers.com/tag.js"> dans vos pages n'est pas une inclusion de contenu : c'est une délégation. Elle donne à ce fichier — et à toutes ses versions futures, que vous ne relirez jamais — les mêmes droits qu'à votre propre code. Lire et modifier l'intégralité de la page, accéder aux cookies non protégés, écouter les frappes clavier, envoyer ce qu'il collecte où il veut. Vous ne choisissez pas ce que contient ce fichier demain matin ; vous choisissez seulement de lui faire confiance.

Un site de PME en héberge rarement un seul. La liste habituelle : un outil de statistiques, un widget de chat, un lecteur d'avis clients, une carte, des polices d'écriture, un pixel publicitaire, un formulaire hébergé ailleurs, une bannière de consentement — et souvent un gestionnaire de balises qui permet d'en ajouter d'autres sans repasser par le développeur. Chacun est un fournisseur à qui vous accordez, en pratique, un accès en écriture à vos pages.

Quatre enseignements pour une PME

1. Le site répond de ce qu'il exécute

Vis-à-vis de vos visiteurs comme du régulateur, l'éditeur du site n'est pas dégagé de sa responsabilité par le fait que le code vienne d'un tiers. C'est depuis vos pages que les traceurs sont déposés, et c'est donc à vous qu'il revient d'en recueillir le consentement — c'est l'article 82 de la loi Informatique et Libertés, et la CNIL sanctionne l'éditeur, pas le fournisseur de la balise. La Cour de justice de l'Union européenne l'avait précisé dès 2019 dans son arrêt Fashion ID : celui qui intègre un module tiers dans ses pages est responsable conjoint du traitement pour la collecte et la transmission qu'il rend possibles. Un client qui se fait détourner un virement depuis votre site de commande, lui, n'ira pas demander des comptes à un prestataire dont il ignore le nom : il vous les demandera à vous.

2. Faire l'inventaire prend dix minutes

La question à poser à votre prestataire web tient en une phrase : combien de domaines différents mon site contacte-t-il quand un visiteur ouvre la page d'accueil ? Vous pouvez le constater vous-même : ouvrez votre site, appuyez sur F12, onglet « Réseau », rechargez la page. Chaque nom de domaine qui n'est pas le vôtre est un fournisseur de code ou de contenu.

Dans les inventaires que nous menons, il est courant d'en découvrir entre cinq et quinze que personne n'a jamais approuvés — souvent hérités d'une campagne publicitaire arrêtée depuis deux ans, d'un outil qu'on a essayé, ou d'un module installé pour une fonction qu'on n'utilise plus. Le premier gain n'est pas technique : c'est la suppression de ce qui ne sert plus. Un script retiré est un fournisseur de moins à surveiller, et une page qui se charge plus vite.

3. Réduire, puis contrôler ce qui reste

Pour ce qui reste indispensable, trois mesures, de la plus radicale à la plus large.

4. Personne ne l'a vu, et c'est normal

Le point le plus instructif de cette affaire est l'absence de détection. Le fichier était servi depuis le domaine légitime du prestataire, sur un site légitime, en HTTPS valide. Rien de ce que regarde un antivirus n'était anormal, et aucun des sites concernés n'avait la moindre raison de relire un fichier qu'il ne contrôle pas. Il a fallu que deux chercheurs indépendants, sans lien avec les sites concernés ni avec le fournisseur, se penchent dessus.

La conséquence est à contre-courant de l'intuition. Face à ce risque-là, la surveillance rapporte peu et la réduction rapporte beaucoup. On ne se protège pas d'un script tiers en le surveillant mieux : on s'en protège en n'en ayant pas. Le même raisonnement s'applique d'ailleurs à votre CMS et à ses extensions — c'est le sujet de notre article sur la faille wp2shell et les sites WordPress vitrines.

Notre lecture

Peu de PME du Limousin travaillent directement avec Adform, et ce n'est pas le sujet. Le mécanisme, lui, est exactement celui du widget de chat installé en 2021, du script d'avis clients ajouté « pour trois mois », ou du gestionnaire de balises auquel une agence a encore accès. La question n'est pas de savoir si vos fournisseurs sont sérieux — un fournisseur sérieux se fait compromettre exactement comme les autres. Elle est de savoir combien vous en avez, et ce qui se passe le jour où l'un d'eux ne l'est plus malgré lui.

C'est un arbitrage que nous assumons sur ce site : le moins de fournisseurs possible, et aucun qui vous suive. Faites l'exercice sur cette page : vous trouverez notre domaine, et un seul autre — la mesure d'audience, sans cookie ni identifiant persistant, désactivée si votre navigateur émet un signal de refus. Les polices et les icônes sont hébergées chez nous. Le composant qui transmet le formulaire de contact n'est téléchargé qu'au moment où vous cliquez dans un champ, jamais à la simple consultation. Et les boutons de partage en bas de cette page sont de simples liens, pas les widgets officiels des réseaux sociaux — ceux-là chargeraient un script et déposeraient un cookie avant même que vous ne cliquiez. Ce n'est ni une prouesse ni un sacrifice : c'est ce que ça coûte, une fois, d'avoir un fournisseur à surveiller au lieu de quinze. Le détail est écrit noir sur blanc dans notre politique de confidentialité.

Si vous ne savez pas ce que votre site charge aujourd'hui, l'inventaire est le point de départ, et il est court. C'est le premier réflexe que nous appliquons sur toute reprise de site en développement web, et il prolonge naturellement la revue d'exposition de notre offre Matériel professionnel & cybersécurité.

Sources : analyse « Adform compromised to serve crypto stealer via supply chain attack » de Kevin Beaumont (DoublePulsar, fin juillet 2026), dont proviennent le nom du script, le domaine servant le fichier et le fonctionnement du code. Recoupés sur les comptes rendus de BleepingComputer (31 juillet 2026), The Hacker News (1er août 2026), IT-Connect et Cybersecurity News, qui confirment le nom du fichier, le domaine, le comportement du code, la date de retrait du 27 juillet et l'absence de détection antivirus. La durée d'exposition, en revanche, n'est confirmée par aucun d'eux : les quatre relaient la même observation du chercheur, et The Hacker News indique explicitement que la chronologie publique reste non tranchée — nous ne l'avons donc pas reprise à notre compte. Il en va de même des chiffres d'ampleur : les 14 000 clients viennent du seul billet du chercheur et contredisent le rapport annuel 2025 d'Adform, qui en revendique près de 1 800 ; nous citons les deux sans trancher. Enfin, les déclarations d'Adform reprises ici sont celles d'une partie prenante : l'entreprise est à la fois la victime de la compromission et la seule source sur l'ampleur réelle de l'exposition. Nous n'avons repris aucun chiffre que nous n'ayons pu lire dans sa source d'origine.