Hacker News new | past | comments | ask | show | jobs | submit login

Something @chrislloyd and I found in Github. Nothing too serious!



A nice POC would have been to write some XSS code which adds your SSH key to a users account if they're logged in when viewing the XSS. I wonder how many HN'ers that would have affected, and git repositories that would have exploited.

I don't think it is an exageration to say that an XSS flaw on something like github has the potential to be disasterous.


XSS trivially compromises your cookie. If I have your cookie, I am you. Demonstrating cute ways to do things that I could just do by logging in as you is superfluous.

Even doing that as a prank would cause a Big Red Button security audit at some companies. As in, drop what you're doing, we need to go over every line of every commit in the git repo and verify nothing like a server password was committed. Recommendation #1 from that audit will be to stop using github.


> Even doing that as a prank would cause a Big Red Button security audit at some companies. As in, drop what you're doing, we need to go over every line of every commit in the git repo and verify nothing like a server password was committed. Recommendation #1 from that audit will be to stop using github.

We know that the two scenarios (ssh key injection as a prank and what happened here as a prank) are equivalent.

If a company reacts like that in your scenario but doesn't do the same after what really happened, they're doing something very wrong.


you wouldn't get access to the cookie in most browsers. The github session cookie is apparently marked as httponly in which case JS wouldn't see it.


I wouldn't trust that, since there are many paths to the cheese besides document.cookie. For example, Firefox (IIRC) will let Javascript inspect all headers from an Ajax request. The cookie is just another string there...


Is that actually possible, or are you just pondering that it might be? If Firefox lets you access the raw HTTP Cookie header of a http-only cookie via AJAX, I would consider that a security bug, and report it...

I may take out 10 minutes to have a play with that later if nobody else checks first...


I have personal knowledge that it was possible in 2007. I don't keep abreast of developments in browser security that make them more secure: unlike, say, Thomas and the geniuses at Matasano, all I need to know is the worst possible consequence of whatever our wonderful outsourcing partners dreamed up this time. XSS was one step below server-side code execution on our severity scale.

[Edit: This was apparently fixed in 2009 in Firefox. http://www.mozilla.org/security/announce/2009/mfsa2009-05.ht... Again, that is just one vector -- I still think HttpOnly is likely insufficient.]


From our buddy Jeff:

The big security hole, as alluded to above, is that Firefox (and presumably Opera) allow access to the headers through XMLHttpObject. So you could make a trivial JavaScript call back to the local server, get the headers out of the string, and then post that back to an external domain. Not as easy as document.cookie, but hardly a feat of software engineering.

http://www.codinghorror.com/blog/2008/08/protecting-your-coo...


Totally academic debate. HttpOnly is a band-aid; being able to inject Javascript still lets me do almost anything that I'd ever want to do with that cookie in the future.


Sure you do. Easy to confirm, just fire up a console on github.com and enter document.cookie. What runs there can run on the page in injected code.

Sess cookie for github is km_ai


I would assume that the session cookie is

_github_ses

which is the only one that's set as both httponly and secure and, by the way, doesn't appear in document.cookie


That actually sounds like an awful way to report an XSS. Honestly, as someone that maintains a web service I have to say I'd prefer private disclosure than even the rickroll approach. All it takes is one "genius" doing some copy-paste action and then you're in a world of hurt and damage control.


Regarding this and the other response to me. I would never do what I described. I was just trying to demonstrate to those that don't understand XSS properly, that these issues are serious. I don't think a Rick Rolling really gets that issue across.

If I do an XSS attack against you on github whilst you are logged in, I can compromise all of your source repositories, your code, and in turn, potentially compromise the systems of your users.


End-users aren't who you need to tell. Just site owners. Posting this to HN before it was fixed constitutes (IMO) completely irresponsible disclosure.


I agree. I would not have disclosed this particular XSS flaw until after it was fixed.


Yes, soon after posting I realised it wasn't the best idea I've ever had. I regret posting this before the Github guys got a chance to fix the hole. Not something I'm going to repeat.


You should report to security@github.com next time.


I'm sure the folks at Github will fix it today since you've emailed them.

Cute use of rickrolling btw. :-)


Why do you think it's nothing too serious?


Were you actively searching for it, or did you discover it by accident?


Discovered it by accident, was perusing https://github.com/jnicklas/xpath and saw that the message was, well, editable.


seems to be already fixed, isn't doing anything for me (chrome / osx)


Hover over the "message" column in the file list.




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

Search: