
cve-2018-8108
Durante um teste de segurança, descobri acidentalmente este problema.
BUI é um framework front-end, muitas empresas o utilizam para construir seus próprios front-ends.
Normalmente, nossa forma de prevenir XSS é tratar toda entrada do usuário como não confiável, escapando-a na saída antes de enviá-la para a página front-end.
No entanto, o componente select do BUI, ao exibir essa saída, re-escapou a entrada do usuário que já havia sido escapada, fazendo com que o payload XSS burlasse o mecanismo de segurança original e continuasse sendo executado.
O exemplo em anexo vem de um caso real.
Podemos ver que os dados na tag input com id="workGroupList" já estavam escapados.
Em seguida, o BUI.use, ao usar o componente select, recuperou os dados de "workGroupList" e disparou diretamente a execução do payload XSS que inserimos.
Você pode tentar executar e verificar.