Yahoo¹s security team has concerns regarding the immediate mode and shared
computers.

Consider the case where a browser based JS app is running in a browser tab
with credentials belonging to a particular user. While the app is still
running, the original user lets a friend borrow the browser. The friend
opens another tab, logs the original user out of the Service Provider, and
then logs in as different user using the friend¹s account.

At this point ­ the app is still running as the original user a different
tab. If the app¹s credentials expire, it could attempt an immediate request
to refresh them ­ which could then return the credentials belonging to the
2nd user. Since this is a JS app ­ the data that belongs to the first user
is already loaded, so the app could start co-mingling the data between the
two users.

At Yahoo, we call this scenario  ³crossing the streams² - and that¹s always
a really bad thing.

This scenario could be really disastrous if the SP has a login CSRF
vulnerability ­ meaning that an attacker can CSRF the victim¹s browser into
logging in with the attacker¹s account. This vulnerability would result in
the victim¹s data mixing with the Attacker.

One possible way to prevent this issue is for the client to pass the user¹s
identifier (or access token/refresh token/etc) in the immediate request.

Allen


On 5/24/10 1:05 PM, "Eran Hammer-Lahav" <e...@hueniverse.com> wrote:

> I am more interested in how you plan to address the (long term) security and
> privacy issue: who is responsible to prevent one user in getting an access
> token for another in a shared computer environment. As long as the user goes
> to facebook.com, you show they who is logged in clearly, so if it is not them,
> they can log out.
> 
> But using immediate without a username, it sounds to me like you expect the
> client to do the right thing. Is this how you plan to address this? Ask the
> client to find out whose access token it got, display it to the user, and
> allow them to correct this? Especially given that at this point the client
> account is already ³paired² with the access token.
> 
> EHL
> 
> 
> On 5/24/10 12:44 PM, "Luke Shepard" <lshep...@facebook.com> wrote:
> 
>> Suppose the client does not have a username - say, because the cookie
>> expired. What is the appropriate behavior?
>> 
>> Would you require the client to spawn a popup or redirect to a full page auth
>> every time a user revisits their site? This doesn't make sense.
>> 
>> Under what circumstances do you think the client gives an access token that
>> belongs to another user? If the user is logged into the service provider,
>> then they can get that access token anyway by just visiting the service
>> provider ...
>> 
>> On May 24, 2010, at 11:18 AM, Dick Hardt wrote:
>> 
>>> >
>>> > On 2010-05-24, at 8:55 AM, Eran Hammer-Lahav wrote:
>>> >
>>>> >>
>>>> >>
>>>>> >>> -----Original Message-----
>>>>> >>> From: Dick Hardt [mailto:dick.ha...@gmail.com]
>>>>> >>> Sent: Monday, May 24, 2010 7:35 AM
>>>>> >>> To: Eran Hammer-Lahav
>>>>> >>> Cc: OAuth WG (oauth@ietf.org)
>>>>> >>> Subject: Re: [OAUTH-WG] 'immediate' without identity
>>>>> >>>
>>>>> >>> You were looking for use cases for immediate without identity.
>>>>> >>>
>>>>> >>> I agree that *if* the client does know the user, then it should tell
>>>>> the server.
>>>>> >>> Are you saying that if the client does not know the user it should not
use
>>>>> >>> immediate?
>>>> >>
>>>> >> I think the server should reject an immediate request without a
>>>> username. Otherwise the server will be giving the client an access token
>>>> that belongs to another user.
>>> >
>>> > Now I understand. I agree.
>>> >
>>> > -- Dick
>>> >
>>> > _______________________________________________
>>> > 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