A flaw in Facebook’s OAuth system that allows the communication between applications and users has enabled web application security specialist Nir Goldshlager to gain full control of any Facebook account.
He started with the discovery that by tinkering with the URL of the OAuth dialog (see image below) he can make users’ land on an external website that can “record” their unique authentication token, then send it to a website controlled by him, where they get saved in a log file.
The user doesn’t have to give permissions to a Facebook application in order for it to work.
By inserting into the URL the app_id of a built-in Facebook app such as Facebook Messenger – which has automatic access to all accounts and permission to do whatever it wants within them – Goldshlager was able to do the same.
And the best part of the attack is that the stolen and thus used access tokens work until users change their passwords, which could mean for a very, very long time.
According to the researcher, the exploit worked on all browsers, and would even work on accounts that have 2-step verification enabled.
Luckily for all of us, this flaw has already been patched by Facebook, but Goldshlager says that he found a couple of more and Facebook is still working on fixing them.
More details about this particular attack are available on his blog. Below is the PoC video: