Hacker News new | past | comments | ask | show | jobs | submit login
Yummy cookies across domains (github.com/blog)
137 points by Killswitch on April 9, 2013 | hide | past | favorite | 16 comments



This is a great article. It is nice that github is comprehensively explaining how they are protecting user data to reassure their users.

However, this is one of the rare blog posts that go on to educate the reader about the technical aspects of something (in this case -- cookie attack vectors) that they can put to use somewhere in their own projects. Unlike a high level gloating blog post that is meant to inspire awe in the readers about how awesome company X is doing thing Y.


Very well written blogpost, but it would be nice if they didn't downplay the severity of the original blog post:

A PoC of how you could clone private repositories, such as the github.com source code itself at github.com/github/github (as an assumed example)


Until the fix everything was possible.

I think they meant "within this few weeks period you could not fixate CSRF token"


Would adding a HMAC string to the cookie value not get around this issue? For example, Tornado has the set_secure_cookie method (http://www.tornadoweb.org/en/stable/web.html#tornado.web.Req...), would this not prevent this sort of attack? Even if a script modified the cookies, they would never (well, hopefully never) be able to generate the correct HMAC token so the server could just discard the cookies. You'd still be able to sign a user out but there wouldn't be a security issue (I think). Anyone smart able to verify/refute?


> Would adding a HMAC string to the cookie value not get around this issue?

That would do absolutely nothing. Here are the attacks:

1) log a person out by replacing the session cookie

2) make github slower by making all requests have to send a large amount of cookie data.

3) Log someone in to one of the attackers accounts. For instance I can create an account like `jResîg`, and log people into that account.

Adding an HMAC prevents 0 of 3. Moving github pages to a different domain solves all three problems.


You as the attacker can visit the page and get yourself a session cookie that is valid and set that on the victim's computer...


Would it increase security to include the user-agent, or part of the user-agent, in the HMAC secret? So the secret was "abc123Mozilla[etc]", that would then presumably require identical browsers to work, at the expense of logging everyone out every time their browser updates. Or include all, or part of the IP address to restrict the network.


Using the IP address to restrict it would work, since now the attacker would need to have the same IP address to get a session that will stick, but this may cause users to be logged out when their ISP changes their IP, or when they move from home to a coffee shop for instance.


JS can get at that with "navigator.appVersion"


No, that's not useful. Cookie tossing attacks need not generate their own cookies -- it's just as effective, if not more so, to toss cookies for a session that was generated for another user.


Doesn't this issue affect Tumblr (and Blogspot, and Wordpress) as well? They all allow arbitrary javascript to be injected by the user in a subdomain, so how are they tackling it?


IIRC only the blog front ends are on the blogspot.com domain. All user logins/blog admin etc are on the blogger.com domain (and no *.blogger.com domains).

(not used their services for ages, so there might be more overlap than i remember)


It sounds like Rack should fix these cookie vulnerabilities, so users don't need to rely on middleware workarounds.


These are not vulnerabilities in Rack (necessarily), but in the way the cookie spec has been drafted and the way Chrome decides to implement it. There's nothing that can be "fixed" in Rack: the only definitive fix is a domain migration.


It looks like the fixes they have are messy (sending a header for each element in the path * each cookie key) and even then don't work in all browsers. Better to just not use subdomains for arbitrary hosting.


What sort of malicious things can be accomplished with a cookie tossing attack?




Consider applying for YC's Spring batch! Applications are open till Feb 11.

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: