A correção da falha o XSS baseado em DOM no Branch.io introduziu uma nova falha XSS.
De acordo com o investigador Linus Särud, a correção de segurança para a vulnerabilidade XSSr ecentemente divulgada no Branch.io introduziu outra vulnerabilidade XSS similar.
A empresa Branch.io fornece a principal plataforma para mobile linking, com soluções que unificam a experiência do utilizador e a medição em diferentes dispositivos, plataformas e canais.
O serviço é usado por muitos serviços populares, incluindo Tinder, imgur, Shopify e Yelp.
A falha foi divulgada há alguns dias pelos investigadores da vpnMentor, que explicaram que um invasor poderia ter explorado a falha de forma a aceder aos perfis dos utilizadores do Tinder.
“After initial reconnaissance steps were done, a Tinder domain with multiple client-side security issues was found – meaning hackers could have access to users’ profiles and details.
Immediately after finding these vulnerabilities, we contacted Tinder via their responsible disclosure program and started working with them.” reads the analysis published by vpnMentor.
“We learned that the vulnerable endpoint isn’t owned by Tinder, but by branch.io, an attribution platform used by many big corporations around the globe. The Tinder security team helped us get in touch with them, and accordingly, they’ve put out a timely patch.”
Agora, Särud descobriu que, mesmo após a implementação do patch de segurança, é possível explorar uma nova falha XSS utilizando a carga para uma falha que ele descobriu há vários meses e que havia sido corrigida anteriormente.
“Almost a year ago, I started to look into the assets belonging to a company that are running a public bug bounty-program. One way of approaching a target is to look for plain HTML-files hosted on a site that is not normally built that way. This type of file often contains DOM-XSS vulnerabilities” reads the analysis of the expert.
“The purpose of the page seems to be to redirect to a mobile app. It takes the redirect-parameter, checks the protocol against a blacklist and if not found redirects to it.”
Os investigadores descobriram a vulnerabilidade inicial numa página aparentemente projetada para redirecionar para uma aplicação móvel – ele verifica o parametro de redirecionamento numa blacklist, e se não for encontrado, redireciona-o .
“To exploit this we need to create a link that will execute as Javascript while the protocol of it is not ‘javascript’. As far as I know this should not be possible according to browser specifications,” continues Särud.
O investigador descobriu que é possível contornar a lista negra usando um protocolo vazio. Ele desenvolveu uma exploração funcional para o Safari e comunicou o problema para os websites mais populares que usam o Branch.io.
Depois de relatar a falha à Branch.io, a empresa classificou a falha como não crítica e efetuou uma correção temporária.
Após a publicação do alerta de segurança, Särud notou que a correção temporária foi substituída por uma permanente que introduziu as novas vulnerabilidades XSS.
Fast forward some months, and I received a link to vpnMentor’s write-up which shows that the temporary fix had been replaced with a more permanent one. However that in turn resulted in new XSS-vulnerabilities, this time found by vpnMentor.” Särud explained.
“What makes everything interesting is that the initial payload still worked, even after the vulnerabilities found by vpnMentor had been resolved. The fix for the second vulnerability was still vulnerable to a third vulnerability, using the very same payload as in the first report,”
A falha introduzida recentemente não é baseada em DOM, agora é refletido no lado do servidor, mas os investigadores confirmaram que ela funciona mais ou menos da mesma maneira.
“The solution of fixing the third vulnerability was now to add ‘ ‘ and ‘:’ to the blacklist,” Särud said.
“It is most likely this function need to support a lot of different custom app protocols making it more or less impossible to use a whitelist instead of a blacklist, an approach that otherwise would been strongly recommended.”
O investigador concluiu que, apesar de a Apple ter sido notificada sobre o bug do protocolo quando foi descoberto pela primeira vez, o ataque ainda funciona na versão mais recente do Safari para macOS e iOS.