
XSS in angular-ui-notification
Tutte le versioni di angular-ui-notification sono vulnerabili a XSS poiché la libreria non sanitizza l'input fornito dall'utente.
Per utilizzare questa libreria in modo sicuro, è fortemente consigliato sanitizzare / codificare i parametri passati a questa libreria, come nel seguente esempio:
private sanitizeHTML(str: string) {
return str.replace(/[^\w. ]/gi, (c) => `&#${c.charCodeAt(0)};`);
}
Supponiamo che la libreria sia già stata importata e attualmente utilizzata da un progetto. L'utilizzo di questa libreria potrebbe essere simile al seguente:
private showNotification(message: string, delay: number, type: NotificationType) {
this.Notification.clearAll();
this.Notification[type]({
message,
delay,
replaceMessage: true
});
}
Se il frontend passasse qualsiasi input utente direttamente al parametro message, un qualsiasi tag <script> sarebbe sufficiente per eseguire un attacco XSS.
Un semplice <script>alert(1)</script> sarebbe sufficiente.
Xh4H
Il progetto non sembra più essere mantenuto, quindi consiglio vivamente di utilizzare alternative mantenute.