CVE-2024-6485

Scripts croisés (Cross-Site Scripting)
Affectations
Bootstrap
>=2.0.0 <=3.4.1
en
Bootstrap
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.

Aperçu

Bootstrap est un framework HTML, CSS et JS pour le développement de sites web et d'applications réactifs et mobiles.

Une vulnérabilité de type cross-site scripting (XSS) a été identifiée dans le composant Bootstrap 3 Button.

Selon l' OWASP: Les attaques de type Cross-Site Scripting sont un type d'injection, dans lequel des scripts malveillants sont injectés dans des sites web par ailleurs bénins et de confiance. Les attaques XSS se produisent lorsqu'un pirate utilise une application web pour envoyer un code malveillant, généralement sous la forme d'un script côté navigateur, à un autre utilisateur final. Un pirate peut utiliser XSS pour envoyer un script malveillant à un utilisateur qui ne se doute de rien. 

Détails

Informations sur le module

Informations sur les vulnérabilités

L'utilisation d'un attribut data-*-text (c'est-à-dire data-complete-text) associé à la fonction d'état d' un bouton n'est pas soumise à l'assainissement du contenu. Par conséquent, aucune restriction n'est appliquée au code HTML qui peut être affiché à l'intérieur du bouton. Cela peut entraîner l'injection de scripts malveillants (XSS) qui peuvent conduire à l'exfiltration de données sensibles vers des serveurs distants.

Étapes de la reproduction

Le code du composant "bouton" n'assainit pas correctement le contenu qui peut être placé dans les attributs qui suivent le format data-[string]-text et qui sont utilisés en conjonction avec la méthode .button(). Un bouton qui lie son attribut data à des paramètres d'URL ou à des champs de saisie permettrait à un pirate d'injecter du code malveillant. Voir la preuve de concept dans la section suivante.

Exemple de code

<input 
  id="firstName" 
  type="text" 
  value="<script>alert('XSS Input Success')</script><span>Loading XSS</span>"
/>
<button
  class="btn btn-primary input-test"
  data-loading-text="<span>I'm Loading</span>"
  type="button"
>
  Click Me
</button>

<script>
$(function () {
  $('.input-test').click(function () {
    var inputValue = $('#firstName').val();
    $(this).data('loadingText', inputValue);
    $(this).button('loading', inputValue);
  });
});
</script>

Preuve de concept

URL CodePen

Une preuve de concept complète avec le code peut être consultée ici.

Crédits

  • K (trouveur)

Atténuation

Bootstrap 3 a atteint sa fin de vie. Les utilisateurs des composants concernés doivent appliquer l'une des mesures d'atténuation suivantes :

  • Migrer vers une version plus récente de Bootstrap
  • Appliquer son propre correctif
  • Faites appel à un partenaire commercial comme HeroDevs pour l'assistance à la sécurité après la fin de vie.

S'attaquer au problème

Bootstrap 3 a atteint sa fin de vie et une migration vers une version plus récente de Bootstrap est recommandée.

HeroDevs propose également un remplacement sécurisé de Bootstrap 3.

Bien que la version 3 de Bootstrap arrive en fin de vie, HeroDevs a décidé de fournir un correctif critique pour remédier à cette vulnérabilité. Ce correctif garantit que les attributs de données sont correctement assainis, bloquant ainsi le potentiel d'attaques XSS par ce vecteur.

Les clients de HeroDevs qui paient pour le Bootstrap Never-Ending Support ont reçu la correction de ce problème dans la dernière version NES de Bootstrap 3 (bootstrap@3.4.5). Si vous n'avez pas encore installé la dernière version ou si vous avez besoin d'aide, veuillez contacter notre équipe d'assistance pour obtenir de l'aide.

Pour tous les autres utilisateurs de Bootstrap 3, veuillez envisager une migration rapide de Bootstrap 3. Sinon, n'hésitez pas à nous contacter pour découvrir à quel point il est facile de recevoir des mises à jour sécurisées de Bootstrap 3 de la part de HeroDevs.

Apprentissage et prévention

Pour aider davantage la communauté, HeroDevs offre des conseils détaillés sur la prévention de vulnérabilités similaires à l'avenir. Les stratégies clés comprennent l'assainissement des entrées de données, en particulier celles qui interagissent avec des composants critiques tels que le contenu des boutons dynamiques. Nous recommandons également d'examiner et de mettre à jour régulièrement les bibliothèques tierces afin de détecter et de corriger les failles de sécurité potentielles avant qu'elles ne puissent être exploitées.

Conclusion

CVE-2024-6485 rappelle l'importance de la maintenance et de la sécurisation des logiciels, même après leur fin de vie. Grâce à des mesures proactives et au soutien de la communauté, nous pouvons garantir un environnement numérique plus sûr pour tous les utilisateurs.

Si vous souhaitez bénéficier d'une assistance en matière de sécurité, de conformité et de compatibilité pour Bootstrap 3 et les bibliothèques correspondantes, veuillez nous contacter.

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

Détails de la vulnérabilité
ID
CVE-2024-6485
PROJET concerné
Bootstrap
Versions concernées
>=2.0.0 <=3.4.1
≈ Date fixe
11 juillet 2024
Sévérité
Moyen
Catégorie
Scripts croisés (Cross-Site Scripting)