CVE-2019-11358

Scripts croisés (Cross-Site Scripting)
Affectations
jQuery
>=1.1.4 <3.4.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

Les versions de jQuery antérieures à la 3.4.0 contiennent cette vulnérabilité de niveau moyen, appelée Pollution de Prototype. Si un objet source non assaini contient une propriété __proto_ énumérable (énumérable signifie qu'elle peut être utilisée dans une boucle for...next), le code malveillant a accès à l'objet natif Object.prototype. Avec cet accès, l'attaquant peut étendre cet objet fondamental de manière à ce que tous les objets Javascript en héritent, introduisant ainsi de nombreux vecteurs d'attaque possibles. L'article de blog sur la version 3.4.0 de jQuery contient des explications supplémentaires qui valent la peine d'être lues.

Aborder la question

Les clients devraient mettre à jour vers jQuery 3.4.0 immédiatement et toujours s'assurer que leur programmation personnalisée assainit les objets sources dans le but de prévenir la vulnérabilité de la pollution par les prototypes. Pour les clients incapables de migrer vers jQuery 3, HeroDevs fournit un support sans fin pour jQuery 1 et 2 avec des correctifs en place.

Apprentissage et prévention

Outre l'assainissement des objets, de nombreuses pratiques permettent d'éviter le problème, de l'utilisation d'objets immuables à la liste blanche des propriétés, en passant par l'utilisation de Object.create(null) pour créer un objet sans prototype. Notez que cette liste n'est pas exhaustive et que les développeurs jQuery doivent connaître les pratiques de programmation sûres afin de réduire le risque de ce type d'exploit.

Conclusion

HeroDevs jQuery Never-Ending Support fournit des versions de jQuery 1 ainsi que jQuery 2 avec des correctifs en place pour corriger la faille de sécurité potentielle décrite par CVE-2019-11358. 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-2019-11358
PROJET concerné
jQuery
Versions concernées
>=1.1.4 <3.4.0
≈ Date fixe
1er février 2023
Fixé en
Sévérité
Moyen
Catégorie
Scripts croisés (Cross-Site Scripting)