And this is even a bigger potential problem when you combine it with 
unregistered or dynamically-registered clients, which we know some instances 
are going to support. In these cases, though, it's hard to trust *any* URL that 
the client is asking for, even for valid responses. 

 -- justin

________________________________________
From: oauth-boun...@ietf.org [oauth-boun...@ietf.org] On Behalf Of Luke Shepard 
[lshep...@facebook.com]
Sent: Sunday, July 25, 2010 8:19 PM
To: Michael D Adams
Cc: OAuth WG (oauth@ietf.org)
Subject: Re: [OAUTH-WG] End-User Authorization Endpoint is an Open Redirect

This is a great point.

Facebook validates that the client_id matches the registered redirect_uri 
before giving a redirect error. Otherwise, just display a screen directly 
saying that the app is misconfigured. Mis-specifying the redirect_uri is the 
type of error that should normally be caught in development, so there's no need 
for an official error code for it (since it shouldn't ever happen in 
production).

We should specify that the provider should only redirect an error code to a 
known-good location (or at least, a somewhat vetted one) to prevent open 
redirectors.

On Jul 24, 2010, at 2:23 AM, Michael D Adams wrote:

> The second to last paragraph in section 3 of draft-10 states:
>
>> The authorization server validates the request to ensure all required
>> parameters are present and valid.  If the request is invalid, the
>> authorization server immediately redirects the user-agent back to the
>> client using the redirection URI provided with the appropriate error
>> code as described in Section 3.2.
>
> There's a couple problems here.
>
> 1. What if the client didn't register a redirect_uri and also didn't
> include one in the request?  The request is invalid, but there's
> nowhere to redirect the user-agent.
>
> 2. A malicious client can use the end-user authorization endpoint as
> an open redirect by intentionally making an invalid request.  For
> example:
>
> End-User Authorization Endpoint: http://service.example.com/oauth/authorize/
> Malicious Site: http://jerk.example.net/
>
> I send a phishing attempt to a user of service.example.com with
> something like the following link in it:
>
> http://service.example.com/oauth/authorize/?redirect_uri=http%3A%2F%2Fjerk.example.net%2Fsteal-your-identity%2F&response_type=haha
>
> The link looks OK at a glance, but clicking on it takes the victim to:
>
> http://jerk.example.net/steal-your-identity/?error=unsupported_response_type
>
> And now I do whatever evil thing I've planned.
>
> Mike
> --mdawaffe
> _______________________________________________
> OAuth mailing list
> OAuth@ietf.org
> https://www.ietf.org/mailman/listinfo/oauth

_______________________________________________
OAuth mailing list
OAuth@ietf.org
https://www.ietf.org/mailman/listinfo/oauth
_______________________________________________
OAuth mailing list
OAuth@ietf.org
https://www.ietf.org/mailman/listinfo/oauth

Reply via email to