HexBrain

Factlink · Report #13555

Login CSRF using Twitter oauth

Validstatus
7upvotes
5 Jul 2014disclosed

How it was found

this bug allows a user to be logged in as the attacker. The main reason is that no state is maintained in the authentication flow. Although the Twitter flow still uses OAuth 1.0A, which has no state parameter as in OAuth 2, it is still possible to prevent this type of attack by setting an additional parameter in the oauth_callback value.

An attacker could exploit this bug as follows:

Attacker initiates Twitter OAuth process with Phabricator Attacker allows access to Phabricator app Attacker records and drops redirection to Phabricator (in order not to consume token) Attacker directs victim to /auth/login/twitter:twitter.com/?oauth_token={attacker_token}&oauth_verifier={attacker_verifier} Victim is now logged in as attacker To mitigate this vulnerability, either maintain state in the authentication flow by adding a parameter in the callback value or, as Twitter seems to support OAuth 2, use that instead

This report was disclosed publicly on HackerOne and belongs to its author and the program. See the original