Author: Arvin Shivram (brutecat)
Published: June 11, 2026
Source: https://brutecat.com/articles/hacking-google-with-ai/
Summary
Security researcher brutecat (Arvin Shivram) documents a large-scale campaign that used an LLM-driven fuzzing pipeline to systematically probe roughly 1,500 of Google’s internal and external APIs with about 3,600 collected API keys, uncovering a series of access-control, authentication, and data-exposure flaws that earned a reported $500,000 across 20+ distinct Google VRP (Vulnerability Reward Program) submissions. The findings were reported to Google, triaged through its VRP, and patched — several P0/S0 issues within hours — so this is a coordinated-disclosure writeup of fixed bugs rather than a live 0-day drop. One issue, an App Engine request-log exposure, was assigned CVE-2026-8934; the remaining findings are tracked as VRP reports without individual CVEs. The article’s stated theme is what happens when an AI agent is pointed at a very large, uniform API surface.
Technical Details
The methodology combined classic recon with AI-driven testing. Recon: the author harvested API keys at scale (extracting tens of thousands of Google Android APKs from mirror sites, intercepting traffic across 2,800+ Google domains with a Chrome Debugger extension, and analyzing decrypted iOS binaries), then filtered to Google-owned keys via a Cloud Marketplace ownership check. Google’s machine-readable API “discovery documents” (many formerly reachable at /$discovery/rest, a path Google removed from most APIs in July 2025) were enumerated using certificate-transparency logs and keyword brute-forcing, with hidden endpoints surfaced by requesting internal visibility labels (e.g. GOOGLE_INTERNAL).
To reach first-party-only endpoints, the author reverse-engineered Google’s First-Party Auth (FPA) token scheme from leaked source maps and dealt with per-API guardrails: origin allow-listing (gaia_mint.AllowedFirstPartyAuth, enforcement from MONITORING_ONLY to ENFORCE_ALL) and the four API-key restriction types (server/IP, browser/Referer, iOS bundle-ID, Android package+cert; the server/IP form being the only unbypassable one). The AI layer classified endpoints into functional groups, fanned a single probe across all keys, grouped responses by hash to spot anomalies, parsed Google’s standardized error reasons into typed explanations to curb hallucination, and tied each reported finding to a replayable operation ID to prevent false positives. This summary deliberately omits the demonstration API keys and exact request payloads reproduced in the original.
Impact
The campaign found a broad set of missing-authorization and cross-tenant flaws, most of which stemmed from staging/sandbox environments mirroring production data without authorization checks, or backend endpoints left reachable despite a protected frontend. Highlights as reported (with VRP awards):
- Google Voice account takeover ($20k) —
BssGetVoiceSettingswith no access control leaked a victim’s Voice/recovery number and allowed assigning arbitrary numbers by Gaia ID. - AdExchange (Ad Manager) ATO ($30k combined) — a staging buyer API let an attacker enumerate accounts and add themselves as admin.
- Eldar internal privacy-assessment system ($26,674 combined) — public backend exposed internal access requests and Googler emails.
- YouTube unlisted-video disclosure ($12k) — Content ID auto-generated asset names leaked unlisted/private video IDs, with insider-trading potential on announcement timing.
- Widevine DRM ATO ($16,004.40) — enumerate organizations, retrieve/decode DRM signing keys, and add users to any org.
- PLX / DataHub analytics ($12k ×2) — staging with production data allowed unauthorized
setIamPolicyand access to petabyte-scale YouTube analytics tables and internal SQL. - Nest owner deanonymization — sequential device/Gaia-ID walking resolved to owner emails, enabling bulk deanonymization.
- Vertex AI Translation Hub ($36,500 combined) — unauthenticated
ListOperationsand cross-tenant reads/writes exposing service accounts, GCS paths, translator PII, and a GCS-exfil oracle. - YouTube TV/Film CMS ($24k) — unrestricted list/read/modify/clone/delete of any campaign, plus CMS account emails.
- Vertex AI Search for Commerce ($30k) — cross-tenant read/write of conversational-search config enabling prompt injection into customer-facing AI and policy tampering.
- Cloud Console GraphQL — a staging variant skipped query-signature validation for unauthenticated requests, opening introspection and further queries.
- App Engine request logs (CVE-2026-8934) ($18k) — the
GetDashboardAppStatsGraphQL query oncloudconsole-pa.googleapis.comreturned any project’s last 24h of App Engine request logs with no IAM check and no authentication; classified by Google as “Single-Service Privilege Escalation – READ.” - Vertex Assistant — an
AgentListSessionsGraphQL query lacked authentication, letting an attacker read a victim’s data. The article also includes a Google Maps Platform billing-credits finding.
Collectively the impact ranges from account takeover and cross-tenant data exposure to leakage of DRM keys, private video IDs, and internal Google metadata and personnel information.
Mitigation
All issues were reported through Google’s VRP and remediated by Google — P0/S0 findings (e.g. Google Voice) reportedly patched within hours, and Google had already removed the /$discovery/rest path from most APIs in July 2025. There is no user-side patch to apply; the article carries no vendor-published advisory beyond CVE-2026-8934. The transferable lessons for defenders: enforce authorization on every endpoint including backend/staging/sandbox variants (never rely on frontend gating), avoid populating non-production environments with production data absent equivalent access controls, treat sequential/guessable object IDs as an enumeration risk, validate IAM on GraphQL resolvers, and remember that machine-readable API specs plus uniform structure make an entire surface cheaply fuzzable — including by an AI agent.
References
- Hacking Google with A.I. for $500,000
- CVE-2026-8934 — App Engine request-log exposure
- brutecat on X — bugSWAT Mexico
- brutecat — Decoding Google (prior article)
- brutecat — Google Cloud RCE (prior writeup, proto leak)
- brutecat — YouTube creator emails (prior article)
- brutecat — Leaking YouTube emails (first Google bug)
- tokencrafter.js — FPA token-generation helper (author asset)
- Michael Dalton — collaborator
- google-cloud-console-graphql — archived Cloud Console GraphQL schema
- GAE-POC — App Engine request-log PoC
- googleapis — error_reason.proto
- xg2xg — ex-Googler tech mapping
- ffuf — web fuzzer
- GraphiQL
- GraphiQL Explorer
- YouTube Data API
- Example publicly accessible discovery document (people-pa)
- Key-restricted discovery document endpoint (protos)
- Google APIs Explorer
- Google APIs Explorer — archived source
- Authorized Buyers API reference
- YouTube Content ID — Asset reference
- assetSearch.list — example query
- OAuth 2.0 Playground
- Google Cloud — API key restrictions docs
- Google API Improvement Proposals (AIP)
- Vertex AI Translation Hub
- Google Cloud Storage
- Vertex AI Search for Commerce
- Gemini Enterprise Agent Platform
- Google Cloud Console
- Chrome Debugger API
- Android Gerrit review
- APKMirror — Google apps
- Uptodown — Google apps
- Certificate Transparency
- Borg — large-scale cluster management paper
- ÜberProxy — USENIX ;login: article
- Spanner — Google research paper
- Deciphering Google batchexecute
- Model Context Protocol (MCP)
- Anthropic — Claude character / agentic behaviors (“Ralph Wiggum loop”)
- gRPC
- ProtoJSON mapping
- GraphQL
- GraphQL introspection
- GraphQL spec — root operation types
- GraphQL Schema Definition Language (SDL)
- Envoy proxy
- Stack Overflow — referenced answer
- HTTP Referer — etymology (Wikipedia)
- SIM swap attack (Wikipedia)
- Polymarket
- Sundar Pichai on X — Gemini announcement
- Google Workspace
- Google Voice
- Google Fiber
- Google Ad Manager
- Widevine Integration Console (Partner Dashboard)
- YouTube TV/Film Partner Dashboard
- Google Classroom
- Google Account — phone settings
- Google Drive
- Google Support