Google のレガシー・アカウント復旧機能の脆弱性:ユーザーの電話番号が漏洩?

Google Vulnerability Let Attackers Access Any Google User’s Phone Number

2025/06/10 CyberSecurityNews — Google のアカウント復旧システムに存在していた、深刻なセキュリティ脆弱性を悪用する攻撃者が、高度なブルートフォース攻撃を介して、任意の Google ユーザーの電話番号を取得できる状態にあったことが、BruteCat のセキュリティ研究者により明かされた。この脆弱性は、Google の No-JavaScript Username Recovery Form の悪用により、通常のセキュリティ保護の回避と、機密情報の抽出を許すものだ。なお、この脆弱性は、すでに修正されている。

この脆弱性の原因は、JavaScript を無効化した状態で機能する、Google のレガシー・ユーザー名復旧システムにある。ある研究者が明らかにしたのは、この廃止されたエンドポイントを悪用して、特定の電話番号と表示名の組み合わせを達成し、電話番号をシステム的に列挙できることだ。

Account recovery

攻撃は、以下の3つの手順で構成されている:

  1. ドキュメントの所有権を移すことで、Looker Studio からターゲットの Google アカウントの表示名を取得する。この処理により、被害者の操作を必要とすることなく、その名前が漏洩してしまう。
  2. Google のパスワードを忘れた場合のフローを開始し、最後の数桁のみが表示されるマスクされた電話番号のヒントを取得する。
  3. カスタムツール gpb を用いて、既知の表示名との組み合わせをテストする、電話番号への総当り攻撃により、完全な電話番号を特定する。それに関しては、BruteCat のレポートで詳しく取り上げられている。
脆弱性によりユーザーの電話番号が漏洩

この研究者が達成したのは、Google のレート制限保護の巧みな回避である。具体的には、18 兆を超える一意の IP アドレスを提供する IPv6 アドレス範囲を利用し、各リクエストごとに異なるアドレスを使うことで、Google の不正使用防止メカニズムの回避に成功した。

さらに、JavaScript 有効版のフォームから取得できる botguardトークンを、No-JS 版で流用することで、通常は自動攻撃を防ぐはずの CAPTCHA の突破も実現した。

この攻撃は非常に効率的であり、1時間あたり僅か $0.30 のサーバ費用で、1秒あたり約 40,000件の検証が達成されたという。

電話番号の特定に要した時間は、国ごとに異なるが、シンガポールのような小国で数秒、米国でも 20分程度だったと報告されている。

この脆弱性の報告を 2025年4月14日に受けた Google は、即座に一時的な対策を講じ、6月6日の時点で問題のレガシー・フォームを完全に廃止した。

この発見に対して、Google は報奨金を $1,337 としていた。しかし、この攻撃には事前条件がなく検出も困難だという、研究者の異議申し立てにより、最終的に $5,000 に増額されたようだ。

この件が浮き彫りにしているのは、レガシー・システムがもたらすセキュリティ課題と、未使用のサービス・エンドポイントなどに対する、包括的なセキュリティ監査の必要性である。