Slide 1 of 28
Part 1 · What Is It?Slide 1
Slide 1 · The Breach That Defined the Category
87 million people’s data. One deprecated API permission. Four years of overlap.
Facebook Graph API v1 / Cambridge Analytica — the privacy model was fixed in v2. v1 kept running.
📄 U.S. FTC · U.S. Senate Judiciary Committee · UK ICO · 2018
THE INCIDENT
Facebook Graph API v1 — The Friends Permission

Facebook’s Graph API v1 included a feature called the “friends permission.” When a user installed an app and granted it access to their data, the app could also request access to all of that user’s friends’ data — without those friends ever being notified or consenting. The friend’s profile, location, likes, and relationship status were all accessible through the installing user’s permission grant.

In 2014, Facebook launched Graph API v2 and removed the friends permission. Apps requesting data through v2 could only access the data of users who had directly installed and consented. The fix was real — but v1 remained operational for any app that had registered before April 30, 2014.

What Cambridge Analytica did: The app “This Is Your Digital Life” (registered in 2013, before the v2 cutoff) used Graph API v1’s friends permission. 270,000 users installed the app and consented to share their data. Through the friends permission, the app harvested the data of each installer’s friends — without those 87 million friends consenting or even knowing. Cambridge Analytica acquired this dataset and used it to build psychographic profiles for political advertising. The breach came to public attention in March 2018. Facebook was fined $5 billion by the FTC and £500,000 by the UK ICO.
The API9 lesson

The security fix existed — in v2. But v1 remained operational long enough for Cambridge Analytica to exploit the old permission model at scale. The vulnerability was not in any single line of code. It was in the decision to let an old API version with a worse security model keep running while a better one existed alongside it.

← All modules What is API9? →