O projeto está em 0.x e se apoia num componente da Microsoft em preview. Só a última versão
publicada recebe correção; não há backport para tags anteriores.
Não abra issue pública para falha de segurança. Use um destes dois caminhos:
- Relato privado no GitHub — aba Security → Report a vulnerability. É o caminho preferido: a conversa fica no repositório, privada, e vira um advisory se o caso se confirmar.
- E-mail para softwareblackfox@gmail.com.
Ajuda muito incluir: versão do app (tag ou commit), versão do WSL (wsl --version), qual motor (CLI
ou nativo), os passos para reproduzir e o impacto que você consegue demonstrar.
Projeto mantido por uma pessoa, fora do horário comercial: não há SLA. Conte com um primeiro retorno em alguns dias e, se o problema se confirmar, correção na versão seguinte — com crédito nas notas, se você quiser.
Saber o que o app é ajuda a calibrar o que é falha de segurança aqui.
É um app desktop local: não tem servidor, não tem conta, não coleta telemetria e não faz rede por
si — o tráfego que existe é o que o wslc faz por conta própria (pull e push de imagem para o
registry que você apontar).
- O renderer não tem Node. Ele fala com o processo main apenas pelo bridge
wslcApi, e todo canal é validado com Zod nas duas direções — o que não está no schema não passa. sandbox: falseestá ligado, porque o preload precisa de APIs do Node. É uma escolha consciente, e é justamente o motivo de o contrato IPC ser fechado por schema.- Efeitos no Windows (abrir o Explorer, o navegador, o arquivo de configuração) passam pela mesma fronteira de IPC, nunca direto do renderer.
- O app faz o que você manda: criar container, executar comando,
execnum container em execução. Isso é a função dele, não escalada de privilégio.
- Escapar do contrato IPC: canal ou payload que o schema aceita e não deveria, ou algo que o renderer
alcance fora do
wslcApi. - Injeção nos argumentos passados ao
wslc.exeou ao SDK a partir de campo de formulário (nome de container, tag, caminho de volume) que execute algo que o usuário não pediu. - Path traversal ou escrita fora do esperado no import/export/load de tarball e nos volumes VHDX.
- Credencial de registry (do
login) vazando em log, em disco ou na tela. - Dependência npm vulnerável que o app realmente alcance em execução.
- Bug do
wslc, dawslcsdk.dllou do WSL: é código da Microsoft, e o caminho é reportar lá. Se a UI puder contornar, abra uma issue normal aqui. - O app executar o comando que você mesmo digitou no terminal embutido ou no
exec. - Ausência de binário assinado: o projeto não distribui instalador (ver README).