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 форму.

Использовали ли уязвимость злоумышленники до её закрытия — неизвестно.