Therefore I reverse engineered two apps that are dating.

And I also got a zero-click session hijacking along with other enjoyable weaknesses

In this article I reveal a number of my findings throughout the reverse engineering for the apps Coffee Meets Bagel together with League. I’ve identified a few critical weaknesses throughout the research, most of which have already been reported towards the affected vendors.


In these unprecedented times, greater numbers of individuals are escaping to the electronic globe to deal with social distancing. Over these times cyber-security is much more important than in the past. From my experience that is limited few startups are mindful of security guidelines. The firms accountable for a range that is large of apps are not any exclusion. We began this small research study to see just exactly how secure the latest relationship apps are.

Accountable disclosure

All severity that is high disclosed in this article are reported into the vendors. Because of the time of publishing, matching patches happen released, and I also have actually individually confirmed that the repairs come in destination.

I shall perhaps maybe perhaps not offer details to their proprietary APIs unless appropriate.

The prospect apps

We picked two popular dating apps available on iOS and Android os.

Coffee Meets Bagel

Coffee matches Bagel or CMB for brief, established in 2012, is renowned for showing users a limited wide range of matches each day. They are hacked when in 2019, with 6 million records taken. Leaked information included a name that is full current email address, age, enrollment date, and sex. CMB is gathering popularity in the last few years, and makes an excellent prospect because of this task.

The League

The tagline for The League application is “date intelligently”. Launched a while in 2015, it really is an app that is members-only with acceptance and fits centered on LinkedIn and Twitter pages. The application is much more high priced and selective than its alternatives, it is safety on par utilizing the cost?

Testing methodologies

I take advantage of a mix of fixed analysis and powerful analysis for reverse engineering. For fixed analysis we decompile the APK, mostly making use of apktool and jadx. For powerful analysis an MITM is used by me system proxy with SSL proxy capabilities.

A lot of the evaluating is completed in the rooted Android emulator running Android os 8 Oreo. Tests that want more capabilities are done on a proper Android os unit running Lineage OS 16 (considering Android Pie), rooted with Magisk.

Findings on CMB

Both apps have large amount of trackers and telemetry, but i suppose this is certainly simply the state associated with the industry. CMB has more trackers compared to the League though.

See whom disliked you on CMB with this specific one trick that is simple

The API carries a pair_action industry in every bagel item which is an enum aided by the after values:

There is an API that given a bagel ID returns the object that is bagel. The bagel ID is shown when you look at the batch of daily bagels. Therefore you, you could try the following if you want to see if someone has rejected:

That is a benign vulnerability, however it is funny that this industry is exposed through the API it is unavailable through the application.

Geolocation information drip, yet not actually

CMB shows other users’ longitude and latitude up to 2 decimal places, which can be around 1 square mile. Happily this given info is maybe perhaps perhaps not real-time, and it’s also just updated whenever a person chooses to upgrade their location. (we imagine this is employed because of the application for matchmaking purposes. I’ve perhaps not confirmed this theory.)

Nevertheless, i really do think this industry might be concealed through the reaction.

Findings on The League

Client-side produced verification tokens

The League does one thing pretty unusual within their login flow:

The UUID that becomes the bearer is totally client-side generated. even even Worse, the server will not validate that the bearer value is a real UUID that is valid. It may cause collisions along with other dilemmas.

I would suggest changing the login model and so the token that is bearer created server-side and provided for the client when the host gets the proper OTP through the customer.

Telephone number drip via an unauthenticated API

Within the League there is an unauthenticated api that accepts a telephone quantity as question parameter. The API leaks information in HTTP reaction code. If the contact number is registered, it comes back 200 OK , but once the quantity just isn’t registered, it comes back 418 we’m a teapot . It can be mistreated in a ways that are few e.g. mapping all of the figures under a place code to see who’s regarding the League and that is maybe perhaps maybe not. Or it may result in prospective embarrassment when your coworker realizes you’re in the application.

It has because been fixed once the bug ended up being reported into the merchant. Now the API merely returns 200 for many requests.

LinkedIn task details

The League integrates with LinkedIn to exhibit a user’s job and employer name on the profile. Often it goes a bit overboard collecting information. The profile API returns detail by detail work position information scraped from LinkedIn, such as the begin 12 months, end 12 months, etc.

Even though the application does ask individual authorization to learn LinkedIn profile, the consumer most likely will not expect the position that is detailed become contained in their profile for everyone to look at. I actually do maybe maybe maybe not believe that type or form of info is essential for the software to work, and it will oftimes be excluded from profile information.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *