84 % des sites web sont concernés par des vulnérabilités XSS dans jQuery
30 octobre 2019
0 minutes de lectureBienvenue dans le rapport 2019 de Snyk sur la sécurité des frameworks JavaScript. Dans cet article, nous passons en revue les vulnérabilités découvertes dans d’autres projets de l’écosystème frontend.
Après avoir étudié Angular et React, deux frameworks JavaScript majeurs, nous allons examiner brièvement plusieurs frameworks JavaScript et CSS : Vue.js, jQuery et Bootstrap.
Sécurité de jQuery
jQuery a révolutionné le développement web il y a dix ans. Depuis, les technologies d’applications monopages telles qu’Angular et React ont profondément transformé le secteur. Cela dit, selon W3Techs, qui réalise régulièrement des enquêtes et publie des rapports sur l’utilisation des technologies web, jQuery était utilisé sur 73 % des sites web analysés en août 2019.
Une étude de Snyk datant de 2017 le confirme : elle indiquait que 77 % des sites utilisent au moins une bibliothèque JavaScript vulnérable et que jQuery était présent sur 79 % des 5 000 principales URL d’Alexa. Si vous n’êtes toujours pas convaincu, le module npm jQuery a totalisé 120 641 977 téléchargements au cours des seuls 12 derniers mois.
Au total, nous avons recensé six vulnérabilités de sécurité touchant jQuery depuis sa première version : quatre vulnérabilités Cross-Site Scripting de gravité moyenne, une vulnérabilité Prototype Pollution de gravité moyenne et une vulnérabilité par déni de service de faible gravité. Si vous n’utilisez pas jQuery 3.4.0 ou une version ultérieure, publiée récemment, le 10 avril 2019, votre version de jQuery est vulnérable.

jQuery étant généralement utilisé comme composant hérité dans les applications web, il est également important de comprendre les tendances d’utilisation des versions et leur état de sécurité.
W3Techs indique que parmi tous les sites web utilisant jQuery, la version 1.x domine avec 83,4 % de part d’utilisation. Les versions 2 et 3 sont loin derrière, avec environ 8 % de l’utilisation de jQuery. En analysant les vulnérabilités connues et les versions de jQuery concernées, nous avons constaté que quatre vulnérabilités Cross-Site Scripting de gravité moyenne touchent jQuery v1. Cette situation est préoccupante, compte tenu de sa part de marché de 83,4 %, en particulier pour les équipes qui n’utilisent pas l’analyse de la composition logicielle pour détecter et corriger les vulnérabilités des composants open source.
De nombreux sites et applications web utilisent également des bibliothèques jQuery pour étendre les fonctionnalités de jQuery, en faisant appel à des bibliothèques développées par la communauté.
Nous avons identifié 13 bibliothèques jQuery vulnérables, présentées dans le tableau ci-dessous. Voici nos observations :
Trois bibliothèques jQuery sont des versions malveillantes de modules open source de la communauté. Comme le registre npm ne fournit pas les données de téléchargement des versions réellement vulnérables, signalons que jquery.js est un paquet malveillant qui a totalisé 5 444 téléchargements au cours des 12 derniers mois.
Les bibliothèques jQuery jquery-mobile, jquery-file-upload et jquery-colorbox totalisent plus de 340 000 téléchargements au cours des 12 derniers mois, alors qu’elles présentent des vulnérabilités d’exécution de code arbitraire et de Cross-Site Scripting, sans possibilité de mise à niveau pour les corriger.
Nom de la bibliothèque jQuery | Type de vulnérabilité | Date de divulgation | Gravité de la vulnérabilité | Téléchargements annuels du module | Correctif disponible ? |
Paquet malveillant | 2019-08-06 | élevée | 322 | n/a | |
Cross-Site Scripting | 2019-07-03 | moyenne | 17,898 | ✅ | |
Paquet malveillant | 2019-06-07 | élevée | 232 | n/a | |
Cross-Site Scripting | 2019-05-04 | moyenne | 54,991 | ❌ | |
Exécution de code arbitraire | 2018-11-02 | faible | 19,442 | ❌ | |
Cross-Site Scripting | 2018-08-19 | moyenne | 79,982 | ✅ | |
Déni de service par expression régulière (ReDoS) | 2018-02-13 | élevée | 3,069 | ✅ | |
Cross-Site Scripting | 2017-11-14 | moyenne | 268,513 | ❌ | |
Paquet malveillant | 2017-08-02 | élevée | 5,444 | n/a | |
Cross-Site Scripting | 2016-07-21 | élevée | 8,934,683 | ✅ | |
Falsification de requête intersite (CSRF) | 2015-06-24 | moyenne | 5,763,710 | ✅ | |
Cross-Site Scripting | 2013-04-18 | moyenne | 1,831,735 | ✅ | |
Falsification de requête intersite (CSRF) | 2012-11-26 | moyenne | 8,934,683 | ✅ | |
Cross-Site Scripting | 2012-08-01 | moyenne | 54,991 | ✅ | |
Cross-Site Scripting | 2010-09-02 | moyenne | 8,934,683 | ✅ |
*les paquets malveillants ne disposent d’aucune information sur les correctifs.
Nous vous recommandons vivement de télécharger la version complète du rapport au format numérique. Nous avons également publié les sections générales suivantes sous forme d’articles de blog :
Rapport 2019 sur l’état de la sécurité des frameworks JavaScript
Comparaison côte à côte des vulnérabilités de sécurité d’Angular et React en 2019
Angular vs React : les risques de sécurité des dépendances indirectes
Comparaison des bonnes pratiques de codage sécurisé de React et Angular
Les vulnérabilités de sécurité XSS de jQuery touchent 84 % des sites web
Lancez-vous dans les compétitions Capture The Flag
Apprenez à résoudre des défis Capture The Flag en regardant à la demande notre atelier virtuel d’initiation.
