Tool allows account hijacking on sites that use Facebook Login
The tool, dubbed Reconnect, was released last week by Egor Homakov, a researcher with security firm Sakurity. It takes advantage of a cross-site request forgery (CSRF) issue in Facebook Login, the service that allows users to log in on third-party sites using their Facebook accounts.
Homakov disclosed the issue publicly on his personal blog in January 2014, after Facebook declined to fix it because doing so would have broken compatibility with a large number of sites that used the service.
"Facebook refused to fix this issue one year ago, unfortunately it's time to take it to the next level and give blackhats this simple tool," Homakov said in a blog post Thursday.
The attack involves generating malicious URLs. When potential victims are tricked into clicking on the urls, they are logged out of their own Facebook accounts and into rogue accounts on the social network that have been set up by the attackers. Also in the background, their accounts on websites that use Facebook Login are linked to the rogue Facebook accounts set up by the attackers.
This gives attackers control over the victims' accounts on those third-party sites, allowing them to change passwords, read private messages and perform other rogue actions using the hijacked accounts, Homakov said.
The Reconnect proof-of-concept tool can also generate malicious URLs to hijack accounts on Booking.com, Bit.ly, About.me, Stumbleupon, Angel.co, Mashable and Vimeo. However, many more sites that support Facebook Login can be targeted by manually inputting into the tool the links that trigger Facebook login requests on behalf of their users.
In all, the attack exploits the lack of CSRF protection for three separate processes -- Facebook login, Facebook logout and third-party account connection -- Homakov said. He said the first two issues can be fixed by Facebook, but the third one needs to be fixed by the sites that integrate Facebook Login.
Facebook did try to make the issue harder to exploit, to the extent it was possible without breaking functionality, and has provided guidance to website developers.
"This is a well-understood behavior," the company said in an emailed statement. "Site developers using Login can prevent this issue by following our best practices and using the 'state' parameter we provide for OAuth Login."
"We've also implemented several changes to help prevent login CSRF and are evaluating others while aiming to preserve necessary functionality for a large number of sites that rely upon Facebook Login," the company said.