
🎩 🤟🏻 [P1-$10,000] Google Chrome, Microsoft Edge e Opera - vulnerabilidade reportada por Maciej Pulikowski - Vazamento de variáveis de ambiente do sistema - CVE-2022-0337
A exploração bem-sucedida dessa vulnerabilidade pode levar ao vazamento dos segredos do usuário armazenados em variáveis de ambiente do sistema. Um bug de segurança foi encontrado na versão 92 do Chromium e corrigido na versão 97. Existem vários navegadores baseados no mecanismo Chromium, por exemplo, Google Chrome, Microsoft Edge, Opera e Brave. Todos eles eram vulneráveis, exceto o Brave. A vulnerabilidade está na API File System Access, mais especificamente no método window.showSaveFilePicker().
Versão CVE: CVE-2022-0337
Créditos: Maciej Pulikowski
Recompensa: $10,000 do Google VRP
Verifique a versão do seu navegador:
chrome://version/edge://version/opera://updateSOMENTE WINDOWS é vulnerável. Linux e Mac são seguros.
https://www.youtube.com/watch?v=q7OIEWtalg8
Obrigado pelos likes e inscrições 😀👍

let a = await window.showSaveFilePicker({suggestedName:'%username%'});
a.name;
No exemplo, é usada a variável de ambiente %username%. Ela retorna o nome de usuário do Windows que está conectado. Além disso, há muito mais variáveis de ambiente interessantes:
Aqui estão alguns exemplos:
e muito mais...
Assim, o atacante poderia obter acesso aos serviços AWS do alvo, à conta do Github ou ao token da Binance para API (sacar dinheiro) e muito mais...
Confira mais segredos em variáveis de ambiente no meu repositório:
🦄🔒 Lista incrível de segredos em variáveis de ambiente 🖥️
O exemplo anterior é executado no Devtools local do Google Chrome.
Obviamente, o atacante poderia criar um arquivo HTML especial (site) para explorar com sucesso essa vulnerabilidade.
env.html - é um exemplo de HTML especial elaborado no repositório.
Mas o usuário realmente precisa baixar um arquivo?
Sim, no entanto, o atacante pode criar um site para incentivar o usuário a segurar o botão ENTER no teclado por 2 segundos para executar e aceitar a caixa de diálogo de salvar arquivo. Como a caixa de diálogo do Windows foca no botão Salvar por padrão, o arquivo será salvo com apenas um piscar.
*.gif é do Opera (Chrome e Edge já estavam corrigidos)
Em conclusão, o usuário, após segurar o botão ENTER no teclado por 2 segundos, pode levar ao vazamento de suas variáveis de ambiente do sistema. Esse é um problema significativo, pois o usuário pode armazenar segredos importantes nas variáveis de ambiente do sistema, ex.: acesso aos seus serviços AWS, conta do Github ou Binance.
Eu me desafiei a corrigir o bug. Aqui, gostaria de ressaltar que não sou desenvolvedor C++ 😎.
source: https://bugs.chromium.org/p/chromium/issues/detail?id=1247389#c9
Uma das soluções foi simplesmente substituir o caractere % em suggestedName por _ . Isso deveria resolver o problema.

poderia ser inserido em:
e os resultados são:


De fato, isso resolveu o problema, mas não era o melhor lugar para inserir o código 😋. No entanto, fiquei muito feliz por conseguir corrigi-lo sozinho 😎
A correção final pode ser encontrada aqui:
https://bugs.chromium.org/p/chromium/issues/detail?id=1247389#c12
Este projeto só pode ser usado para fins educacionais. Usar este software contra sistemas alvo sem permissão prévia é ilegal, e quaisquer danos decorrentes do mau uso deste software não serão de responsabilidade do autor.
![]() | ![]() | ![]() | ![]() | ![]() |
|---|
| 92-96 Vulnerável ❗️❗️ 97+ Corrigido (seguro) ✔ | 92-96 Vulnerável ❗️❗️ 97+ Corrigido (seguro) ✔ | 78-82 Vulnerável ❗️❗️ 82 Corrigido (seguro) ✔ | Seguro ✔ | Seguro ✔ |