A researcher last year discovered some information disclosure vulnerabilities in Facebook that exposed users’ friend lists and partial payment card information. The social media giant patched one of the flaws within hours.
Web security consultant Josip Franjković had been analyzing the Facebook application for Android when he identified a flaw that allowed him to obtain any user’s list of friends via a specially crafted request.
Facebook users can prevent others from seeing their friends, but the vulnerability discovered by Franjković could have been exploited to obtain this information regardless of the targeted user’s privacy settings.
GraphQL is an open source data query language designed by Facebook for its mobile applications. GraphQL queries can only be used for Facebook’s own applications—only whitelisted query IDs are allowed—and they require an access token.
Franjković discovered that he could use the client token from the Facebook app for Android, and he could bypass the whitelist by sending a request containing a “doc_id” parameter instead of “query_id.”
Once he bypassed the whitelisting mechanism, the researcher started sending GraphQL queries. While most returned data that had already been public, a query named CSPlaygroundGraphQLFriendsQuery leaked the friend list of the user whose ID was included in the request.
The second issue identified by the expert was also related to GraphQL and it, too, was found during the analysis of the Facebook app for Android. An attacker could have exploited the flaw to obtain partial payment card information by sending a query containing the targeted user’s ID and an access token that could have been taken from a Facebook app.
The security hole was described as an insecure direct object reference (IDOR) bug and it provided access to the first 6 and last 4 digits of a payment card, expiry date, type of card, first name of the cardholder, and zip code and country. Users typically enter credit card details on Facebook to pay for ads.
The friend list leak and whitelist bypass vulnerabilities were reported by Franjkovic to Facebook on October 6, 2017 and they were patched in mid-October. The payment card leak issue was reported in February 2017 and it was patched in 4 hours and 13 minutes. The details of the security holes were only disclosed by Franjković on Monday and Facebook posted a link to the researcher’s blog post on its Bug Bounty page. The researcher has not disclosed the bug bounty amounts he received for his findings.
This is the third round of Facebook vulnerabilities disclosed by Franjković this year. He previously shared the details of two account takeover flaws via Oculus integration and Facebook’s partners portal.