
XSS dans angular-ui-notification
Toutes les versions de angular-ui-notification sont vulnérables aux XSS car la bibliothèque ne nettoie pas les entrées fournies par l'utilisateur.
Pour utiliser cette bibliothèque en toute sécurité, il est fortement recommandé de nettoyer / encoder les paramètres qui lui sont passés, par exemple :
private sanitizeHTML(str: string) {
return str.replace(/[^\w. ]/gi, (c) => `&#${c.charCodeAt(0)};`);
}
Supposons que la bibliothèque a déjà été importée et est actuellement utilisée par un projet. L'utilisation de cette bibliothèque pourrait ressembler à ceci :
private showNotification(message: string, delay: number, type: NotificationType) {
this.Notification.clearAll();
this.Notification[type]({
message,
delay,
replaceMessage: true
});
}
Si le frontend passait directement toute entrée utilisateur au paramètre message, n'importe quelle balise <script> suffirait pour effectuer une attaque XSS.
Un simple <script>alert(1)</script> suffirait.
Xh4H
Le projet ne semble plus maintenu, donc je recommande vivement d'utiliser des alternatives maintenues.