Retour aux articles
Un CDN JavaScript compromis distribue du malware sur 300 000 sites : ce qu'il faut faire maintenant
Sécurité4 août 20262 min de lecture2 vues

Un CDN JavaScript compromis distribue du malware sur 300 000 sites : ce qu'il faut faire maintenant

Un CDN tiers largement utilisé pour des scripts de tracking et d'analytics a été compromis le 3 août 2026. Le script servi à 300 000 sites intégrait un keylogger et un redirecteur vers des pages de phishing. Si vous utilisez des CDN tiers sans SRI, vous êtes concerné.

Le 3 août 2026 à 14h17 UTC, un CDN JavaScript utilisé par des centaines de milliers de sites pour servir des scripts de tracking, d'analytics et de chat a commencé à distribuer une version de ses scripts modifiée. Le payload : un keylogger ciblant les champs de formulaire et un redirecteur qui intervenait sur certaines pages de paiement pour envoyer les données vers un serveur tiers. L'incident a été détecté par Sentry sur plusieurs sites clients avant que le CDN ne soit alerté. La fenêtre d'exposition a duré environ 4 heures.

Comment l'attaque a fonctionné

Le CDN ne distribuait pas un nouveau fichier : le fichier existant a été modifié directement sur l'infrastructure du fournisseur après une compromission de son pipeline de déploiement. Les utilisateurs qui chargeaient le script via la balise <script src="https://cdn.exemple.com/analytics.min.js"> recevaient la version malveillante sans aucune alerte côté navigateur.

La modification était subtile : 3 lignes ajoutées à la fin du fichier minifié, obfusquées sous forme de chaînes encodées en base64. Le script capturait les événements keyup sur les inputs de type email, password et text, et envoyait un batch toutes les 2 secondes à un domaine enregistré 48 heures plus tôt.

Subresource Integrity : la protection qui aurait tout bloqué

L'attribut integrity sur les balises <script> et <link> permet au navigateur de vérifier que le fichier reçu correspond exactement à un hash défini côté développeur. Si le fichier est modifié, même d'un seul octet, le navigateur refuse de l'exécuter.

<script
  src="https://cdn.exemple.com/analytics.min.js"
  integrity="sha384-oqVuAfXRKap7fdgcCY5uykM6+R9GqQ8K/uxy9rx7HNQlGYl1kPzQho1wx4JwY8wC"
  crossorigin="anonymous">
</script>

Aucun des 300 000 sites affectés n'utilisait SRI sur ce script. Ce n'est pas une surprise : SRI oblige à mettre à jour le hash à chaque mise à jour du CDN, ce qui est perçu comme une friction par les équipes de développement.

Ce que vous devez faire immédiatement

  • Auditer tous les <script src> qui pointent vers des domaines tiers dans vos pages. Un grep suffit : grep -r 'src="https://' src/.
  • Pour chaque CDN tiers critique (analytics, chat, paiement), ajouter l'attribut SRI. Générez le hash avec srihash.org ou openssl dgst -sha384 -binary fichier.js | openssl base64 -A.
  • Envisager de self-héberger les scripts critiques plutôt que de les charger depuis un CDN tiers.
  • Mettre en place une Content Security Policy (CSP) restrictive qui bloque les requêtes vers des domaines non autorisés.
  • Configurer Sentry ou un outil équivalent pour détecter les erreurs réseau inhabituelles côté client.

Cet article a été partiellement rédigé ou modifié à l'aide d'une intelligence artificielle.