← Toutes les vérifications
SécuritéSévérité typique: Élevé

Scanner de bibliothèques vulnérables

Détecte des versions vulnérables ou en fin de vie de jQuery, AngularJS et Bootstrap avec des CVE XSS connues.

Ce qu'elle vérifie

Ce scanner identifie les versions des bibliothèques front-end courantes comme jQuery, AngularJS et Bootstrap que ton site charge. Il signale celles qui sont vulnérables ou en fin de vie et qui présentent des failles XSS connues et documentées.

Pourquoi ça compte

Utiliser une bibliothèque avec des vulnérabilités publiques est une porte ouverte bien connue : les attaquants cherchent justement ces versions parce que la faille est déjà publiée. Un XSS via une bibliothèque obsolète peut permettre le vol de session ou l'injection de contenu sur ton site.

Comment la corriger

Mets ces bibliothèques à jour vers une version prise en charge et sans vulnérabilités connues, en vérifiant d'abord que rien ne casse. Si une bibliothèque n'est plus maintenue, comme AngularJS, envisage de migrer vers une alternative moderne qui l'est encore.

Comment fonctionne cette vérification

Scanaris réunit le HTML de ta page principale et télécharge jusqu'à quinze de ses scripts : tous ceux servis depuis ton propre domaine et, parmi les externes, ceux dont le chemin contient « jquery ». Dans ce texte, il cherche les bannières de version que les bibliothèques placent en tête de fichier. Trois cas ouvrent un constat, tous de sévérité moyenne. jQuery antérieur à 3.5.0 : vulnérabilités XSS connues (CVE-2020-11022 et CVE-2020-11023) dans sa façon de traiter le HTML. AngularJS, toute version 1.x : le framework est en fin de vie depuis janvier 2022 et ne reçoit plus de correctifs de sécurité. Bootstrap 3.x antérieur à 3.4.1 ou 4.x antérieur à 4.3.1 : XSS par les attributs data- des tooltips et popovers (CVE-2019-8331). Il ne signale que lorsqu'il trouve le numéro de version écrit ; si le fichier est minifié sans bannière, il ne devine pas.

Pourquoi c'est important

Une vulnérabilité XSS dans une bibliothèque chargée par tout ton site est une porte ouverte sur toutes les pages à la fois : un attaquant qui parvient à placer du texte là où la bibliothèque l'interprète comme du HTML (un commentaire, un nom de profil, un paramètre d'URL) exécute du JavaScript avec la session de celui qui le voit. Pour ces trois bibliothèques, les failles sont publiques depuis des années, avec des exemples d'exploitation publiés, et les outils automatiques les testent d'office. Le cas d'AngularJS est différent mais pire à long terme : ce n'est pas une faille précise, c'est que la prochaine qui apparaîtra ne sera jamais corrigée.

D'où ça vient

Parce que ça marche. Un jQuery 1.12 de 2016 fait toujours ce qu'il faisait et personne n'y touche de peur de casser quelque chose. Les thèmes et plugins WordPress sont le cas typique : le cœur de WordPress livre jQuery 3.7 depuis la version 5.6, mais un vieux thème peut charger sa propre copie. On le trouve aussi dans des templates HTML achetés, des panneaux d'administration hérités et des projets où l'IA a copié un exemple avec une URL de CDN vieille de plusieurs années.

Comment corriger

  • jQuery : passe à la dernière 3.x (3.7 est la branche actuelle). Change l'URL du CDN ou le fichier local, et charge jquery-migrate pendant quelques jours pour qu'il te signale en console les anciens appels à adapter. Teste les formulaires, les menus et tout plugin jQuery que tu utilises.
  • Bootstrap : si tu es en 3.x, passe en 3.4.1, qui est compatible ; en 4.x, passe en 4.6.2. Ce sont des versions de maintenance sans changement de design. Sauter en 5.x est une migration plus lourde parce qu'elle abandonne jQuery et renomme des classes ; planifie-la à part.
  • AngularJS : il n'existe pas de version sûre vers laquelle monter. Les options sont migrer (vers Angular moderne, Vue ou React, par morceaux si l'appli est grande), acheter un support étendu commercial en attendant, ou isoler l'appli : sans données sensibles, derrière une authentification et avec une CSP stricte.
  • WordPress : mets à jour le thème et les plugins ; si l'un d'eux continue de charger un vieux jQuery, remplace-le. Ne désactive pas le jQuery du cœur pour « alléger » : c'est la bonne version.
  • En général : installe les bibliothèques avec npm au lieu de copier des URL de CDN, et active les alertes de dépendances de GitHub ou npm audit pour être prévenu de la prochaine.

Vérifie que c'est corrigé

curl -s https://tondomaine.com | grep -oE 'src="[^"]*(jquery|bootstrap|angular)[^"]*"'
curl -s URL_DU_SCRIPT | head -c 400 | grep -oE '(jQuery|Bootstrap|AngularJS)[^0-9]{0,30}v?[0-9]+\.[0-9]+\.[0-9]+'

La première te dit quels fichiers ton site charge ; la seconde, avec l'URL de chacun, la version qu'ils déclarent. Attendu : jQuery 3.5.0 ou plus, Bootstrap 3.4.1, 4.3.1 ou plus, et aucun AngularJS.

Questions fréquentes

Seules ces trois bibliothèques sont détectées ?

Pour l'instant, oui : elles concentrent la majorité des vulnérabilités exploitées côté front sur les sites réels. Pour le reste de tes dépendances, npm audit ou les alertes GitHub couvrent ce qu'une analyse externe ne peut pas voir.

J'utilise jQuery 1.12 mais je n'insère jamais de HTML d'utilisateurs. Suis-je à l'abri ?

Tant que personne ne passe de texte non fiable par .html(), .append() ou similaires, la faille précise ne se déclenche pas. Mais c'est difficile à garantir sur tout le site et dans tous les plugins, et la mise à jour vers 3.x prend généralement un après-midi. En attendant, une CSP stricte limite les dégâts ; CSP faible la passe en revue.

Et si la bibliothèque vient d'un CDN ?

Alors, en plus de la mettre à jour, fige la version et ajoute integrity pour que personne ne puisse la remplacer en douce ; intégrité des sous-ressources l'explique.

Vérifie-le sur ton site

Analyse ton site gratuitement et vois si celle-ci et 44 autres vérifications passent, avec un fix prompt pour chaque problème.

Analyser mon site gratuitement

Vérifications liées