CVE-2020-11022

Scripts croisés (Cross-Site Scripting)
Affectations
jQuery
>=1.2.0 <3.5.0
en
jQuery
Icône de cercle d'exclamation
Patch disponible
Cette vulnérabilité a été corrigée dans la version Never-Ending Support (NES) proposée par HeroDevs.

‍Étapes de la reproduction

Cet exploit de niveau moyen peut être trouvé dans les versions de jQuery supérieures ou égales à 1.2 et antérieures à 3.5.0. Le problème peut survenir lorsque l'on transmet du code HTML provenant de sources non fiables, même après l'avoir nettoyé, à l'une des méthodes de manipulation du DOM de jQuery (c.-à-d. .html(), .append() et autres). Si l'entrée n'est pas correctement assainie, ces méthodes peuvent exécuter du code non fiable.

Aborder la question

Les clients doivent passer à la version 3.5.0 de jQuery immédiatement après avoir effectué des tests approfondis. Des tests approfondis sont nécessaires car la méthode d'assainissement utilisée dans jQuery.htmlPrefilter() a changé dans la version 3.5.0 et il existe des cas limites dans lesquels la fonctionnalité d'assainissement peut produire des résultats inattendus. Si l'ancien comportement est absolument nécessaire, le blog de la version 3.5.0 de jQuery décrit un moyen d'utiliser l'ancienne logique en toute sécurité. Sinon, pour les clients incapables de migrer, HeroDevs fournit un support sans fin pour jQuery, y compris les versions de jQuery 1 et jQuery 2 avec des correctifs pour cette vulnérabilité de sécurité.

Apprentissage et prévention

L'assainissement des données non fiables avant de les utiliser ou de les stocker est une pratique exemplaire en matière de sécurité, et ce pour une bonne raison : il s'agit d'un vecteur courant d'intrusion dans le code. Dans ce cas, l'erreur a été trouvée dans le code conçu pour assainir les données. La meilleure solution consistait à abandonner l'utilisation de regex() au profit d'une nouvelle méthode d'assainissement des données. 

Normalement, l'utilisation des méthodes d'assainissement intégrées est suffisante. Cependant, malgré l'utilisation d'une nouvelle méthode d'assainissement dans la version 3.5.0, l'équipe jQuery recommande également d'utiliser la bibliothèque DOMPurify pour un assainissement supplémentaire et de s'assurer d'utiliser l'option SAFE_FOR_JQUERY. DOMPurify est une bibliothèque très populaire et hautement configurable, spécifiquement conçue pour aider à prévenir les exploits de type Cross-Site Scripting (XSS).

Conclusion

Afin de fournir les cadres Javascript les plus sûrs possibles pour leurs sites, les clients de HeroDevs NES reçoivent des versions de jQuery qui ont corrigé ce CVE et tous les autres CVE pertinents.

Ce correctif corrige directement la faille de sécurité potentielle décrite par CVE-2020-11022. Pour rester informé des mises à jour de sécurité comme celles-ci, contactez-nous dès aujourd'hui pour devenir client.

Ressources

Détails de la vulnérabilité
ID
CVE-2020-11022
PROJET concerné
jQuery
Versions concernées
>=1.2.0 <3.5.0
≈ Date fixe
1er février 2023
Fixé en
Sévérité
Moyen
Catégorie
Scripts croisés (Cross-Site Scripting)