XSS no Shazzer via escape de sandbox

Shazzer é um serviço criado por Gareth Heyes para testes de segurança de navegador e pesquisa de XSS. Permite que os usuários executem JavaScript personalizado, com todo o código executado dentro de um <iframe sandbox="allow-scripts allow-forms">.
Sem a flag allow-same-origin, o código executando dentro da sandbox recebe origin: null e não pode acessar dados pertencentes ao próprio site.
O problema estava relacionado a como os navegadores lidam com URLs Blob. O código do usuário era executado a partir de URLs como:
blob:https://shazzer.co.uk/<uuid>
Enquanto o Blob era executado dentro do iframe com sandbox, as restrições funcionavam conforme o esperado. No entanto, o pesquisador descobriu que abrir a mesma URL Blob fora do iframe fazia com que o navegador a associasse à origem shazzer.co.uk. Como resultado, o código destinado a permanecer isolado foi executado no próprio contexto de segurança do site.
A exploração exigiu encadear várias peculiaridades do navegador: • vazar o identificador Blob via WebRTC/STUN; • revogação atrasada da URL Blob causada por DataCloneError durante postMessage; • abrir o Blob através da navegação do usuário.
Para demonstrar o impacto, o pesquisador obteve acesso aos dados da sessão do usuário.
Produto
Shazzer
Stun
Webrtc
Publicado
2026-06-08, 14:47