
XSS no angular-ui-notification
Todas as versões em angular-ui-notification são vulneráveis a XSS devido à biblioteca não sanitizar a entrada fornecida pelo usuário.
Para usar esta biblioteca com segurança, é altamente recomendado sanitizar/codificar os parâmetros passados para ela, como no exemplo a seguir:
private sanitizeHTML(str: string) {
return str.replace(/[^\w. ]/gi, (c) => `&#${c.charCodeAt(0)};`);
}
Suponha que a biblioteca já tenha sido importada e esteja sendo usada por um projeto. O uso desta biblioteca poderia ser semelhante ao seguinte:
private showNotification(message: string, delay: number, type: NotificationType) {
this.Notification.clearAll();
this.Notification[type]({
message,
delay,
replaceMessage: true
});
}
Se o frontend passasse qualquer entrada do usuário diretamente para o parâmetro message, qualquer tag <script> seria suficiente para realizar um ataque XSS.
Um simples <script>alert(1)</script> seria suficiente.
Xh4H
O projeto parece não ser mais mantido, então recomendo fortemente o uso de alternativas mantidas.