Google Groups Authorization Bypass / $500 bounty
- Komodo Research
- Mar 25, 2019
- 3 min read
Updated: Aug 27

Tl;dr: I’ve recently been playing around with Google services, poking here and there for security vulnerabilities. It’s been a quite a roller-coaster experience with some interesting results as well as some devastating rejections (I should definitely write a separate blog about those). Nevertheless, I’ve found one simple, but interesting auth-bypass on Google groups (that landed me a $500 bounty) that I think is worth sharing.
First things first: GWT
Have you ever heard of or played with Google Web Toolkit (GWT)? I have to admit that although it’s not exactly cutting-edge technology (in fact it’s been around from as early as 2006 and became open source in 2013), I had never really come across it before I started looking at Google products. When you first look at GWT HTTP requests they look, well… different. At first glance, they might even be intimidating. I mean, just look at this Googley witchcraft:
Luckily, however, the age of GWT means that security research has already been done on it (I’ve even found an old OWASP ppt.), which helped me decipher some of the request elements.
Class enumeration is a nice start
Now that we have our bearings, let’s go back to Google-Groups. If you’ve never played with this service before, Google-Groups is basically a forum platform. You can create your own forums (‘groups’), invite participants to discuss topics, and manage the group’s permissions (decide who is allowed to view/update which thread). Oh, and yes, Google-Groups is built with GWT.
Generally speaking, my quick and dirty approach to manipulate GWT requests was to ‘stick to the middle,’ i.e. not to mess with the signature bit of the request (the pipe-separated numbers at the beginning and the end of the above body), but to stick to the parameters.
I quickly found a parameter worth manipulating. In the following GWT request, I discovered that the marked integer points to a specific class on the server-side:
And so, I quickly launched a Burp-intruder session to extract classes’ names:
While not a huge issue on its own (I’ve reported the issue to Google who justifiability deemed it “low risk”), it gave me the motivation to keep going and believing that I could find a gap in this GWT implementation.
This stage is an excellent reminder of how cybersecurity vulnerability research often begins with seemingly low-risk findings. Even though class enumeration is not immediately exploitable, it often opens the door to deeper flaws such as a web application authorization bypass or, in this case, the more specific Google Groups authorization bypass that I eventually uncovered.
Viewing other group’s data
Armed with my new confidence, I’ve looked back at the initial GWT request from before. One of the strings in the request was the name of a testing group I’d created:
The response included basic information about the groups, including the group’s email, topic and description. But could I only view info about my own groups?
I quickly spawned a new group under a 2nd Google account (setting all permissions to ‘private,’ meaning that only invited users are allowed to view anything about the group), and then queried it from my 1st account. Turns out that authorization check was lacking, and I was able to extract some of the private group’s data:
While auth-bypass is always nice, it’s not a critical issue. I wasn’t able to extract the group’s conversations, but only the group’s email and description (which might be sensitive). Still, it was my first GWT exploit (and one of my first Google bounties) and altogether quite a nice bug :)
For anyone learning how to find Google Groups auth bypass, this case highlights the importance of testing not just the obvious permissions but also indirect request manipulations. Often, web applications perform incomplete authorization checks, which can lead to sensitive information disclosure even when access to full content is restricted. In this context, the Google Groups flaw represents a real-world instance of a web application authorization bypass, reinforcing why continuous testing and research matter so much in modern cybersecurity.
Timeline:
January 21st - Bug reported to Google
January 21st - Bug was triaged
January 24th - Bug was accepted
February 5th – $500 bounty was granted
In conclusion, while the bug itself was low severity, it still underlines the value of persistence in cybersecurity vulnerability research. Small bypasses like this one may not always lead to a critical exploit, but they strengthen the overall understanding of how large-scale systems like Google Groups handle security. Moreover, documenting such findings helps others in the community learn practical techniques for discovering a Google Groups authorization bypass and identifying similar flaws in other applications.









Comments