Electron contextIsolation RCE via IPC
Se o script de pré-carregamento expõe um ponto de extremidade IPC a partir do arquivo main.js, o processo de renderização poderá acessá-lo e, se vulnerável, um RCE pode ser possível.
A maioria desses exemplos foi retirada daqui https://www.youtube.com/watch?v=xILfQGkLXQo. Verifique o vídeo para mais informações.
Exemplo 0
Exemplo de https://speakerdeck.com/masatokinugawa/how-i-hacked-microsoft-teams-and-got-150000-dollars-in-pwn2own?slide=21 (você tem o exemplo completo de como o MS Teams estava sendo abusado de XSS a RCE nesses slides, este é apenas um exemplo muito básico):
Exemplo 1
Verifique como o main.js
escuta getUpdate
e irá baixar e executar qualquer URL passado.
Verifique também como preload.js
expõe qualquer evento IPC do main.
Exploração:
Exemplo 2
Se o script de pré-carregamento expõe diretamente ao renderizador uma forma de chamar shell.openExternal
, é possível obter RCE.
Exemplo 3
Se o script de pré-carregamento expõe maneiras de se comunicar completamente com o processo principal, um XSS será capaz de enviar qualquer evento. O impacto disso depende do que o processo principal expõe em termos de IPC.
Last updated