
ИБ-исследователь под псевдонимом brutecat (skull) обнаружил (
) критическую уязвимость в механизме восстановления аккаунта Google, позволявшую массово деанонить

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

️ Уязвимость находилась в устаревшей форме восстановления имени пользователя, доступной при отключённом JavaScript. Форма обладала стандартной защитой от автоматизированных запросов, но исследователь выяснил, что если взять валидный токен BotGuard из JS-версии формы и подставить его в No-JS форму, то все ограничения на количество попыток для брута снимаются.

Для успешной атаки требовалось дополнительно узнать полное имя пользователя, но это можно было легко узнать через неочевидную

"баг-фичу" в сервисе Google Looker Studio, где при передаче владения документом раскрывалось полное имя получателя:

То есть атакующий заходил в свой (аккаунт Google Looker Studio. Он создавал любой пустой, абсолютно безвредный документ. Содержимое не имело никакого значения. Затем он использовал стандартную функцию «Поделиться» (Share) и инициировал «Передачу владения» (Transfer ownership) этим документом. В окне передачи владения атакующий вводил email-адрес своей жертвы (
victim@gmail.com).
Он подтверждал передачу. И вот здесь происходила утечка. Сразу после подтверждения, в интерфейсе у самого атакующего на его главной странице Looker Studio, система обновляла информацию о документе. Вместо того чтобы просто показать, что документ теперь принадлежит
victim@gmail.com, система услужливо отображала имя и фамилию, привязанную к этому аккаунту Google.

Далее в ход шла стандартная процедура сброса пароля. Узнавались последние цифры телефона (например, ••••••••03).
Вооружившись именем, подсказкой и

«волшебным ключом» BotGuard, можно было запустить брутфорс, то есть перебор недостающих цифр.

Результаты оказались (Используя недорогой сервер, исследователь добился (перебора ~40 номеров в секунду).
Например, вычислить номер телефона получилось:

Нидерланды — за 15 секунд

Великобритания — за 4 минуты

США — за 20 минут
Исследователь сообщил об уязвимости в Google. Сначала в компании оценили уязвимость как

"низкорисковую" и оценили выплату в размере $1 337.
Однако после обоснованной апелляции и демонстрации

️ массовой практической опасности, классификация была повышена до

"средней"и выплата увеличилась до $5 000.

Компания полностью вывела из эксплуатации уязвимую форму восстановления без JavaScript.