
🎩 🤟🏻 [P1-$10,000] Google Chrome, Microsoft Edge и Opera — уязвимость, сообщённая Maciej Pulikowski — утечка системных переменных окружения — CVE-2022-0337
Успешная эксплуатация этой уязвимости может привести к утечке секретов пользователя, хранящихся в системных переменных окружения. Ошибка безопасности была обнаружена в версии Chromium 92 и исправлена в версии 97. Существует несколько веб-браузеров на основе движка Chromium, например, Google Chrome, Microsoft Edge, Opera и Brave. Все они были уязвимы, кроме Brave. Уязвимость находится в File System Access API, точнее в методе window.showSaveFilePicker().
Версия CVE: CVE-2022-0337
Автор: Maciej Pulikowski
Вознаграждение: $10,000 от Google VRP
Проверьте версию вашего веб-браузера:
chrome://version/edge://version/opera://updateТОЛЬКО WINDOWS уязвимы. Linux и Mac безопасны.
https://www.youtube.com/watch?v=q7OIEWtalg8
Спасибо за лайки и подписки 😀👍

let a = await window.showSaveFilePicker({suggestedName:'%username%'});
a.name;
В примере используется переменная окружения %username%. Она возвращает имя пользователя Windows, вошедшего в систему. Кроме того, существует гораздо больше интересных переменных окружения:
Вот некоторые примеры:
и многие другие...
Таким образом, злоумышленник может получить доступ к AWS-сервисам цели, аккаунту Github или токену Binance API (для вывода денег) и не только...
Смотрите больше секретов в переменных окружения в моём репозитории:
🦄🔒 Потрясающий список секретов в переменных окружения 🖥️
Предыдущий пример выполняется в локальных Devtools Google Chrome.
Очевидно, что злоумышленник может создать специальный HTML-файл (веб-сайт) для успешной эксплуатации этой уязвимости.
env.html — пример такого специально созданного HTML в этом репозитории.
Но действительно ли пользователю необходимо скачать файл?
Да, однако злоумышленник может создать веб-сайт, который побудит пользователя удерживать кнопку ENTER на клавиатуре в течение 2 секунд, чтобы запустить и принять диалог сохранения файла. Поскольку диалоговое окно Windows по умолчанию фокусируется на кнопке Save, файл будет сохранён в мгновение ока.
*.gif из Opera (Chrome и Edge уже исправлены)
В заключение, пользователь, удерживая кнопку ENTER на клавиатуре в течение 2 секунд, может привести к утечке своих системных переменных окружения. Это серьёзная проблема, поскольку пользователь может хранить важные секреты в системных переменных окружения, например, доступ к своим AWS-сервисам, аккаунту Github или Binance.
Я поставил себе задачу исправить эту ошибку. Здесь хочу подчеркнуть, что я не C++-разработчик 😎.
источник: https://bugs.chromium.org/p/chromium/issues/detail?id=1247389#c9
Одно из решений заключалось в том, чтобы просто заменить символ % в suggestedName на _. Это должно решить проблему.

можно вставить в:
и вот результаты:


Действительно, это решило проблему, но это было не лучшее место для вставки кода 😋. Однако я был очень рад, что мне удалось починить её самостоятельно 😎
Финальное исправление можно найти здесь:
https://bugs.chromium.org/p/chromium/issues/detail?id=1247389#c12
Этот проект может использоваться только в образовательных целях. Использование этого программного обеспечения против целевых систем без предварительного разрешения незаконно, и автор не несёт ответственности за любой ущерб, причинённый в результате неправомерного использования этого программного обеспечения.
![]() | ![]() | ![]() | ![]() | ![]() |
|---|
| 92-96 Уязвим ❗️❗️ 97+ Исправлено (безопасно) ✔ | 92-96 Уязвим ❗️❗️ 97+ Исправлено (безопасно) ✔ | 78-82 Уязвим ❗️❗️ 82 Исправлено (безопасно) ✔ | Безопасно ✔ | Безопасно ✔ |