Google закрыл дыру, позволявшую подбирать номер по имени аккаунта
Исследователь под ником BruteCat обнаружил, что перебором можно было узнать номер телефона, привязанный к аккаунту Google, если знать имя пользователя и часть номера. Уязвимость оказалась в старой версии формы восстановления имени пользователя, которая работала без JavaScript — и, как выяснилось, без современной защиты.
Как всё работало
Форма позволяла отправить запросы с именем пользователя и номером телефона — и в ответ возвращала ответ, существует ли такой аккаунт. Всё это делалось с помощью двух POST-запросов. Формально защита была, но:
Ограничение по числу запросов обошли с помощью IPv6-ротации — через /64-подсети можно было генерировать триллионы уникальных IP-адресов. CAPTCHA блокировали не всех — её удалось обойти, подставляя валидный BotGuard-токен от JS-версии формы.
Что использовал исследователь
BruteCat создал утилиту gpb, которая:
Перебирала номера по шаблонам, учитывающим формат номеров в конкретной стране; Работала с библиотекой libphonenumber от Google; Автоматически получала BotGuard-токены через headless Chrome; Отправляла до 40 000 запросов в секунду.
Например, на подбор американского номера уходило около 20 минут, на британский — 4 минуты, на нидерландский — всего 15 секунд.
Как добывались недостающие цифры
Чтобы сузить круг поиска, исследователь получал часть номера из:
Формы восстановления аккаунта Google — она показывает две цифры; Сторонних сервисов, например PayPal, где в процессе сброса пароля можно увидеть больше цифр (например, +14•••••1779).
А имейл-адрес пользователя, который Google больше не показывает напрямую, BruteCat доставал через Looker Studio: создаётся документ, передаётся на владение жертве — и её имя появляется в панели управления.
Чем это опасно
Если злоумышленник узнает привязанный номер телефона:
Он может начать вишинг (мошеннические звонки с целью выманить данные); Провести СИМ-свопинг и получить контроль над номером; Использовать номер для сброса паролей и доступа к другим сервисам.
Реакция Google
BruteCat сообщил об уязвимости 14 апреля 2025 года через программу вознаграждений Google. Сначала баг не восприняли всерьёз. 22 мая Google изменила оценку на «среднюю» степень риска и выпустила частичные патчи, выплатив исследователю $5 000. 6 июня Google окончательно закрыла уязвимую JS-disabled форму.
Использовали ли уязвимость злоумышленники до её закрытия — неизвестно.