
🎩 🤟🏻 [P1-$10,000] Google Chrome, Microsoft Edge et Opera - vulnérabilité signalée par Maciej Pulikowski - Fuite des variables d'environnement système - CVE-2022-0337
L'exploitation réussie de cette vulnérabilité peut entraîner la fuite des secrets de l'utilisateur stockés dans les variables d'environnement système. Un bug de sécurité a été trouvé dans la version 92 de Chromium et corrigé dans la version 97. Il existe plusieurs navigateurs web basés sur le moteur Chromium, par exemple Google Chrome, Microsoft Edge, Opera et Brave. Tous étaient vulnérables, à l'exception de Brave. La vulnérabilité se situe dans l'API File System Access, plus précisément dans la méthode window.showSaveFilePicker().
Version CVE : CVE-2022-0337
Crédits : Maciej Pulikowski
Récompense : 10 000 $ de Google VRP
Vérifiez la version de votre navigateur web :
chrome://version/edge://version/opera://updateSEUL WINDOWS est vulnérable. Linux et Mac sont sûrs.
https://www.youtube.com/watch?v=q7OIEWtalg8
Merci pour les pouces bleus et les abonnements 😀👍

let a = await window.showSaveFilePicker({suggestedName:'%username%'});
a.name;
Dans l'exemple, une variable d'environnement %username% est utilisée. Elle renvoie le nom d'utilisateur Windows connecté. De plus, il existe de nombreuses autres variables d'environnement plus intéressantes :
Voici quelques exemples :
et bien d'autres...
Ainsi, l'attaquant pourrait obtenir un accès aux services AWS de la cible, à son compte Github ou au jeton Binance pour l'API (retirer de l'argent), et plus encore...
Découvrez plus de secrets dans les variables d'environnement sur mon dépôt :
🦄🔒 Liste géniale de secrets dans les variables d'environnement 🖥️
L'exemple précédent est exécuté dans les Devtools locaux de Google Chrome.
Évidemment, l'attaquant pourrait élaborer un fichier HTML spécial (site web) pour exploiter avec succès cette vulnérabilité.
env.html - est un exemple de HTML spécial élaboré dans le dépôt.
Mais, l'utilisateur est-il vraiment obligé de télécharger un fichier ?
Oui, cependant, l'attaquant peut créer un site web pour encourager l'utilisateur à maintenir la touche ENTRÉE du clavier enfoncée pendant 2 secondes pour exécuter et accepter la boîte de dialogue d'enregistrement du fichier. Comme la boîte de dialogue Windows met par défaut le focus sur le bouton Enregistrer, le fichier sera enregistré en un simple clignement.
*.gif provient d'Opera (Chrome et Edge étaient déjà corrigés)
En conclusion, un utilisateur qui maintient la touche ENTRÉE du clavier enfoncée pendant 2 secondes pourrait entraîner la fuite de ses variables d'environnement système. C'est un problème important car l'utilisateur pourrait stocker des secrets importants dans les variables d'environnement système, par ex. l'accès à ses services AWS, son compte Github ou Binance.
Je me suis donné comme défi de réparer le bug. Ici, je tiens à souligner que je ne suis pas un développeur C++ 😎.
source : https://bugs.chromium.org/p/chromium/issues/detail?id=1247389#c9
Une des solutions consistait à simplement remplacer le caractère % dans suggestedName par _ . Cela devrait résoudre le problème.

pourrait être inséré dans :
et les résultats sont :


En effet, cela a résolu le problème, mais ce n'était pas le meilleur endroit pour insérer le code 😋. Cependant, j'étais très heureux d'avoir réussi à le réparer par moi-même 😎.
La correction finale se trouve ici :
https://bugs.chromium.org/p/chromium/issues/detail?id=1247389#c12
Ce projet ne peut être utilisé qu'à des fins éducatives. L'utilisation de ce logiciel contre des systèmes cibles sans autorisation préalable est illégale, et tout dommage résultant d'une mauvaise utilisation de ce logiciel ne relèvera pas de la responsabilité de l'auteur.
![]() | ![]() | ![]() | ![]() | ![]() |
|---|
| 92-96 Vulnérable ❗️❗️ 97+ Corrigé (sûr) ✔ | 92-96 Vulnérable ❗️❗️ 97+ Corrigé (sûr) ✔ | 78-82 Vulnérable ❗️❗️ 82 Corrigé (sûr) ✔ | Sûr ✔ | Sûr ✔ |