
🎩 🤟🏻 [P1-$10,000] Google Chrome, Microsoft Edge y Opera - vulnerabilidad reportada por Maciej Pulikowski - Fuga de variables de entorno del sistema - CVE-2022-0337
La explotación exitosa de esta vulnerabilidad puede provocar la filtración de secretos del usuario almacenados en las variables de entorno del sistema. Se encontró un fallo de seguridad en la versión 92 de Chromium y se parcheó en la versión 97. Hay varios navegadores web basados en el motor Chromium, por ejemplo, Google Chrome, Microsoft Edge, Opera y Brave. Todos ellos eran vulnerables, excepto Brave. La vulnerabilidad está en la API File System Access, más específicamente en el método window.showSaveFilePicker().
Versión CVE: CVE-2022-0337
Créditos: Maciej Pulikowski
Recompensa: $10,000 de Google VRP
Comprueba la versión de tu navegador:
chrome://version/edge://version/opera://updateSOLO WINDOWS es vulnerable. Linux y Mac son seguros.
Gracias por los pulgares arriba y las suscripciones 😀👍

let a = await window.showSaveFilePicker({suggestedName:'%username%'});
a.name;
En el ejemplo se utiliza la variable de entorno %username%. Devuelve el nombre de usuario de Windows conectado. Además, hay muchas más variables de entorno interesantes:
Aquí hay algunos ejemplos:
y muchas más...
Así que el atacante podría obtener acceso a los servicios AWS de la víctima, su cuenta de Github o el token de Binance para la API (para retirar dinero) y más...
Consulta más secretos en variables de entorno en mi repositorio:
El ejemplo anterior se ejecuta en las Devtools locales de Google Chrome.
Obviamente, el atacante podría crear un archivo HTML especial (sitio web) para explotar con éxito esta vulnerabilidad.
env.html - es un ejemplo de HTML especial diseñado en el repositorio.
Pero, ¿realmente el usuario debe descargar un archivo?
Sí, sin embargo, el atacante puede crear un sitio web para animar al usuario a mantener presionado el botón ENTER en el teclado durante 2 segundos para ejecutar y aceptar el diálogo de guardado del archivo. Debido a que el diálogo de Windows enfoca por defecto el botón Guardar, el archivo se guardará con solo un parpadeo.
*.gif es de Opera (Chrome y Edge ya estaban corregidos)
En conclusión, el usuario, después de mantener presionado el botón ENTER en el teclado durante 2 segundos, podría provocar la filtración de sus variables de entorno del sistema. Esto es un problema significativo porque el usuario podría almacenar secretos importantes en las variables de entorno del sistema, por ejemplo, acceso a sus servicios AWS, cuenta de Github o Binance.
Me propuse el desafío de reparar el error. Aquí quiero destacar que no soy un desarrollador de c++ 😎.
Una de las soluciones fue simplemente reemplazar el carácter % en suggestedName por _ . Esto debería resolver el problema.

podría insertarse en:
y los resultados son:


De hecho resolvió el problema, pero no fue el mejor lugar para insertar el código 😋 . Sin embargo, estaba muy contento de haber logrado repararlo por mi cuenta 😎
La corrección final se puede encontrar aquí:
Este proyecto solo puede ser utilizado con fines educativos. El uso de este software contra sistemas objetivo sin permiso previo es ilegal, y cualquier daño derivado del mal uso de este software no será responsabilidad del autor.