Bug hunting looks cool on Twitter: big payouts, P1 RCEs, flex posts. Reality is usually half-cold coffee, many tabs, and small logic bugs that break real user trust.
I found one of those quiet but dangerous bugs on a Google subdomain. Short version: you could create a full account for any Gmail address, get a token, and change profile or cart - all without email verification and without rate-limiting. Bad, right? Very bad.
This is my story - how I found it, how I reported it, the follow-ups, the frustration, and what I learned.
Ek aur din, ek aur vulnerability. Same banda, naye emotions 😭. Intro ke liye purane writeups padho yaar.
(Translation - Another day, another vulnerability. Same guy, new emotions 😭. Read old write-ups for the intro, friend.)
I was just poking around the Website. I found the website is using graphql , I already had learned how graphql works and stuff so without wasting time I runned Graphql Introspection query and I found many things. Interestingly i found an registeration mutation. I tried and results , Success.
No OTP. No verification. Just a token in response. I could update name, add address, and even pre-fill the shopping cart via GraphQL mutations.
Two feelings hit me: (1) “Yes - proof!” and (2) “Oh no - this is dangerous.”
The main reason it is more dangerous because they only have SSO for Sign-up / Sign-in , if the real user later logged in with Google OAuth, they would land inside the account I had already created. Zero-click takeover. Silent and nasty.
(Fun Fact- They can’t even revoke the account as they don’t have any reset password option or any other way they can revoke the JWT token.)
I tested carefully and kept all sensitive stuff private. I made a small, repeatable PoC: createCustomer → generateCustomerToken → updateCustomer/addProductsToCart → victim logs in via OAuth → victim ends up in attacker account.
I prepared:
Why it matters:
This was a logic bug, not a shiny exploit - but the damage could be real.
I submitted the report and started the usual back-and-forth.
Important: I also tried contacting the vendor directly about the bug, but I didn’t get a reply from them. Still, the vulnerability was eventually resolved now they have forget password option GraphQL is also secured (good - users protected), even though vendor communication was radio-silent from my side.
Press enter or click to view image in full size
That PoC moment - big dopamine spike. Getting triaged and accepted - validation. The follow-ups - expected. The closure because of “vendor-operated” scope - frustrating.
I pushed with WHOIS and ownership info, argued that a Google subdomain with user-facing security issues needs fixing regardless of vendor operation. The panel reviewed and still closed the report citing vendor operation. It felt like: I did the right technical job, but the procedural ladder stopped the reward path.
Still - the main win: the bug was fixed. That’s what matters for users.
If you hunt logic bugs or build auth systems, keep these in mind:
Be curious more than flashy. Tools help, but thinking wins. Click around like a normal user. Try weird flows. Ask “what if” and follow it.
When you report:
And emotionally: a $0 reward or closure doesn’t mean you lost. You protected users. You learned. You built credibility. Keep going.
I found an unauthenticated GraphQL flow on a Google subdomain that allowed account creation, token issuance, and profile/cart manipulation without email verification or rate-limiting - enabling 0-click pre-account hijack. I reported it to Google VRP (detailed PoC + follow-ups). I tried to contact the vendor but didn’t get a reply. The VRP eventually closed the report as vendor-operated, but the vulnerability was resolved. Lesson: logic bugs hide in plain sight - be curious, report clearly, and don’t stop.
Signing off,
cyberhrsh