CVE-2021-4231

Scripts croisés (Cross-Site Scripting)
Affectations
Angular
<=11.1.0
en
Angular
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

Une vulnérabilité de longue date classée comme problématique/modérée a été découverte dans plusieurs versions de la bibliothèque Angular. CVE-2021-4231 est une vulnérabilité de type cross-site scripting (XSS) qui est apparue pour la première fois dans la version 6 et qui n'a pas été détectée jusqu'à récemment.

Le problème est lié à la manière dont les commentaires de code sont analysés lors du rendu côté serveur (SSR). L'analyseur peut fermer prématurément un commentaire (voir les étapes de reproduction ci-dessous), exposant ainsi la vulnérabilité. Lorsqu'elle est exploitée, un script malveillant peut être exécuté, ce qui peut conduire à un accès non autorisé à des données sensibles ou à la prise de contrôle de sessions d'utilisateurs.

Bien que d'autres avis de sécurité recommandent la mise à jour vers les versions 10.2.5 et 11.0.5 pour résoudre ce problème, la vulnérabilité est également présente dans les versions 6, 7, 8 et 9.

Ci-dessous, un marqueur de commentaire final a été ajouté entre les guillemets doubles en guise de texte :

'<!-- The way you close a comment is with "-->". -->'

Cependant, l'analyseur n'est pas en mesure de distinguer que le "-->" est du texte et non un véritable marqueur de fermeture de commentaire. L'analyseur syntaxique ferme le commentaire prématurément, ouvrant ainsi le code à une vulnérabilité XSS potentielle. D'autres marqueurs de fermeture de commentaire sont "-->" (avec un espace initial) et "--!>", qui déclenchent également la vulnérabilité.

Aborder la question

Le correctif ajoute des espaces non visibles "-_-_>" (où le "_" est un espace de largeur nulle "\u200B") aux marqueurs de commentaires fermants dans le texte afin que l'analyseur syntaxique ne les identifie pas comme de véritables marqueurs de commentaires fermants.

Cette vulnérabilité a été initialement découverte et corrigée par Google dans Angular v11 et les versions ultérieures. Des recherches menées par HeroDevs ont permis d'identifier cette vulnérabilité comme affectant également des versions antérieures qui n'étaient plus LTS et ne recevaient plus de mises à jour de sécurité. Les clients de HeroDevs Angular NES ont été notifiés de ce correctif de sécurité et ont reçu une version sécurisée d'Angular 6, 7, 8, 9, et 10. Si vous n'avez pas encore installé la dernière version ou si vous avez besoin d'aide, veuillez contacter notre équipe de support pour obtenir de l'aide.

Les autres utilisateurs d'Angular devraient mettre à jour immédiatement et pourraient envisager d'obtenir un support rapide de sécurité Angular de HeroDevs pour les vulnérabilités futures.

Apprentissage et prévention

CVE-2021-4231 est instructif car il n'a pas été détecté pendant de nombreuses versions avant d'être identifié et corrigé. En règle générale, la mise à jour des versions de sécurité est considérée comme une bonne pratique. Dans ce cas, cependant, étant donné qu'il s'agissait d'une vulnérabilité de longue date, cela n'aurait pas suffi. Plus précisément, il est tout aussi important dans ce cas d'être rapidement informé de la vulnérabilité et d'être en mesure de mettre à jour le code de production très rapidement.

Conclusion

Bien que le code ancien soit souvent considéré comme particulièrement précieux parce qu'il a été "testé au combat", il est toujours possible de trouver des vulnérabilités qui se cachent dans les anciennes versions de logiciels vénérables. HeroDevs reste à l'affût de toutes les vulnérabilités découvertes dans nos produits Never-Ending Support, ce qui vous permet d'être rapidement averti lorsque vous devez prendre des mesures rapides.

Si vous souhaitez bénéficier d'une assistance en matière de sécurité, de conformité et de compatibilité pour Angular et les bibliothèques correspondantes, contactez-nous dès aujourd'hui.

Restez en sécurité et assurez-vous que vos systèmes sont mis à jour avec les derniers correctifs d'HeroDevs. Pour plus d'informations et de mises à jour de sécurité, continuez à suivre notre blog.

Ressources

Détails de la vulnérabilité
ID
CVE-2021-4231
PROJET concerné
Angular
Versions concernées
<=11.1.0
≈ Date fixe
1er février 2024
Fixé en
Sévérité
Moyen
Catégorie
Scripts croisés (Cross-Site Scripting)