Баг в Microsoft Edge раскроет ваши письма вредоносному сайту

Баг в Microsoft Edge раскроет ваши письма вредоносному сайту

Баг в Microsoft Edge раскроет ваши письма вредоносному сайту

Стало известно о крайне серьезной ошибке в Edge, благодаря которой вредоносные сайты могут получать контент с других сайтов путем воспроизведения аудиофайлов определенным образом. По словам экспертов, такая злонамеренная техника может привести к серьезным утечкам.

Проблему обнаружил эксперт Google Джейк Арчибальд. Он комментирует баг следующим образом:

«Это очень серьезная ошибка. На деле это значит, что вы, посетив мой сайт (который является proof-of-concept), раскроете мне ваши электронные письма, ленту Facebook. И все это произойдет без вашего ведома».

Ошибка возникает в момент, когда вредоносный сайт использует технологию Service Workers для загрузки с удаленного сайта мультимедийного контента внутри тега <audio>, параллельно используется параметр «range» для загрузки только определенного раздела этого файла.

Арчибальд объясняет, что из-за несогласованности в том, как браузеры обрабатывают файлы, загруженные с помощью Service Workers внутри тегов audio, можно загружать любой контент на вредоносном сайте.

При нормальных обстоятельствах такое было бы невозможно осуществить из-за CORS (Cross-Origin Resource Sharing) — защитной функции браузера, которая запрещает сайтам загружать ресурсы с других сайтов.

Но в этом случае сайт злоумышленника может отправлять запросы «no-cors», которые получающие сайты (среди них Facebook, Gmail и BBC) примут без проблем. Это позволит атакующему загрузить контент, который ни при каких других обстоятельствах не загрузился бы на случайных доменах.

Уязвимость получила имя Wavethrough (CVE-2018-8235), она затрагивает Edge и Firefox — на Chrome и Safari не влияет.

Хорошая новость заключается в том, что на момент написания материала эта брешь закрыта.

Арчибальд опубликовал proof-of-concept в виде сайта также моно ознакомиться с видео, подтверждающим наличие бага:

Расширения Chrome могут слить секреты URL через атаку по стороннему каналу

Как оказалось, расширения Chrome можно использовать для слива кодов авторизации, сеансовых ID и других секретов из URL любой открытой вкладки. Никаких специальных разрешений для этого не понадобится, только доступ к declarativeNetRequest API.

Этот механизм, пришедший на смену webRequest API, позволяет расширениям сообщать браузеру, что следует изменить или заблокировать на загружаемой странице (заголовки, реклама, трекеры).

Правила обработки запросов при этом добавляются динамически, а фильтрация осуществляется по регулярным выражениям, соответствующим подмножествам знаков, которые могут присутствовать на определенных позициях в URL.

Исследователь Луан Эррера (Luan Herrera) обнаружил, что блокировку, диктуемую правилами, Chrome производит почти мгновенно, за 10-30 мс, а остальные запросы выполняются дольше (~50-100ms) — из-за сетевых подключений. Эту разницу во времени расширение может использовать для бинарного поиска с целью посимвольного слива URL.

// extensions/browser/api/web_request/extension_web_request_event_router.cc:1117-1127
case DNRRequestAction::Type::BLOCK:
  ClearPendingCallbacks(browser_context, *request);
  DCHECK_EQ(1u, actions.size());
  OnDNRActionMatched(browser_context, *request, action);
  return net::ERR_BLOCKED_BY_CLIENT;

Оракул для подобной тайминг-атаки строится с использованием chrome.tabs.reload для перезагрузки страницы и перехватчика chrome.tabs.onUpdated, помогающего отследить событие status === "complete". Замер времени между reload и завершением загрузки покажет, заблокирован запрос или успешно обработан.

Повторение проверок и бинарного поиска позволяет получить полный URL (с довеском после «?»), затратив на каждый знак строки несколько прогонов. Таким образом, можно незаметно для пользователя украсть включенные приложением в адрес секреты — токены OAuth и сброса пароля, API-ключи, ссылки на контент, закрытый для поисковых систем.

Проверка PoC проводилась на Windows 11 24H2 с использованием Chrome разных версий:

  • 144.0.7559.97 (Stable)
  • 145.0.7632.18 (Beta)
  • 146.0.7647.4 (Dev)
  • 146.0.7653.0 (Canary)

В Google подтвердили возможность подобной атаки по стороннему каналу, но заявили, что решить проблему нереально.

RSS: Новости на портале Anti-Malware.ru