Comply with OAuth v1.0 (the RFC, not the original 1.0)

Bug #1502354 reported by Corentin Noël
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
Launchpad itself
Triaged
Low
Unassigned

Bug Description

Using the URLs from this page: https://help.launchpad.net/API/SigningRequests , https://launchpad.net/+request-token is returning oauth_token=AuthToken&oauth_token_secret=AuthTokenSecret but oauth_callback_confirmed=true is missing to comply with the specifications (OAuth v1.0) http://tools.ietf.org/html/rfc5849#section-2.1

Tags: api feature oauth
William Grant (wgrant)
Changed in launchpad:
importance: Undecided → Low
status: New → Triaged
summary: - Comply with OAuth v1.0
+ Comply with OAuth v1.0 (the RFC, not the original 1.0)
Revision history for this message
William Grant (wgrant) wrote :

Launchpad's OAuth implementation predates the RFC; the version 1.0 that we implement is the original "OAuth Core 1.0" from http://oauth.net/core/1.0/. That real 1.0 doesn't include oauth_callback_confirmed; it was added in 1.0a. RFC 5849 defines a second version 1.0 (yes, seriously), which is a variant of 1.0a.

Launchpad hasn't upgraded to OAuth Core 1.0a, as the session fixation attack in the original 1.0 isn't relevant to our implementation. OAuth 1.0 was primarily designed for trusted relationships between web services, but in Launchpad it is used for a relationship between a desktop application or script and Launchpad.

For this reason, Launchpad can't trust a particular consumer, as everyone running an application or script possesses the consumer's secret. Since consumer identities aren't trustworthy, an upgrade to 1.0a just complicates the workflow for no benefit -- the attacker could just pretend to be an honest consumer, send a callback URL that points to themselves, and proceed as normal.

tags: added: api feature oauth
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.