Slashdot Mirror


GitHub Hacked

MrSeb writes "Over the weekend, developer Egor Homakov exploited a gaping vulnerability in GitHub that allowed him (or anyone else with basic hacker know-how) to gain administrator access to projects such as Ruby on Rails, Linux, and millions of others. GitHub uses the Ruby on Rails application framework, and Rails has been weak to what's known as a mass-assignment vulnerability for years. Basically, Homakov exploited this vulnerability to add his public key to the Rails project on GitHub, which then meant that GitHub identified him as an administrator of the project. From here, he could effectively do anything, including deleting the entire project from the web; instead, he posted a fairly comical commit. GitHub summarily suspended Homakov, fixed the hole, and, after 'reviewing his activity,' he has been reinstated. Homakov could've gained administrative access to the master branch of any project on GitHub and deleted the history, committed junk, or closed or opened tracker tickets."

118 of 202 comments (clear)

  1. That's what you get by For+a+Free+Internet · · Score: 5, Funny

    That's what you get when you allow Italians like this guy on America's internet. Don't say I didn't warn you.

    The remedy is that we all need to be more proactive about patronizing Wisconsin cheese and California wine.

    --
    UNITE with the Campaign for a Free Internet because today, our future begins with tomorrow!
    1. Re:That's what you get by dunkelfalke · · Score: 5, Funny

      Dude, it is far worse than you imagine. The guy is obviously Russian. The Russians are coming!

      --
      "It's such a fine line between stupid and clever" -- David St. Hubbins, Spinal Tap
    2. Re:That's what you get by hairyfeet · · Score: 1

      I KNEW it, its them damned Ruskies again! Fall of the wall my ass, its all a commie plot to let our guards down! We should have listened to the greatest American that had ever lived, General George Patton, hired them damned Nazis sons of bitches, put their asses in Sherman tanks and pointed their asses towards Moscow! That would have taught 'em who's boss! Now even our computers aren't safe from them damned reds!

      --
      ACs don't waste your time replying, your posts are never seen by me.
  2. What no Guantanamo Bay for him? by stillpixel · · Score: 5, Insightful

    Oh wait.. this is an open source community that understood what his intentions where and didn't have a knee jerk reaction. What I guess intelligence trumps mass panic and ignorance.

    1. Re:What no Guantanamo Bay for him? by vlm · · Score: 5, Insightful

      Oh wait.. this is an open source community that understood what his intentions where and didn't have a knee jerk reaction.
      What I guess intelligence trumps mass panic and ignorance.

      You have to realize this isn't some random dude, but a guy "well known" as having an octocat tattoo on his arm...

      http://homakov.blogspot.com/2011/07/octocat-tattoo.html

      --
      "Science flies us to the moon. Religion flies us into buildings." - Victor Stenger
    2. Re:What no Guantanamo Bay for him? by pinfall · · Score: 1

      Oh wait.. this is an open source community that understood what his intentions where and didn't have a knee jerk reaction. What I guess intelligence trumps mass panic and ignorance.

      Incorrect assumption. Although there is a passive, appreciate communiy behind such an effort, you will see a joint effort by Italian, European and American authorities to eliminate this violation. Start with international wire fraud, malicious intent to harm, and move down the list to sopa-like attrocities such as violating terms of a website and you've got life in prison. Give them 5 more years of legislation and we'll have Texas-style hangings for these incredibly threatening comical hackers.

      I heard a joke once: Man goes to doctor. Says he's depressed. Says life is harsh and cruel. Says he feels all alone in a threatening world. Doctor says,"Treatment is simple. The great clown Pagliacci is in town tonight. Go see him. That should pick you up." Man bursts into tears. Says,"But doctor... I am Pagliacci." Good joke. Everybody laugh. Roll on snare drum. Curtains.

    3. Re:What no Guantanamo Bay for him? by timeOday · · Score: 5, Interesting

      The real question is whether other more nefarious individuals preceded him undetected.

    4. Re:What no Guantanamo Bay for him? by Anonymous Coward · · Score: 1

      So an octocat tattoo will protect people from being detailed without trial in Guantanamo Bay?

    5. Re:What no Guantanamo Bay for him? by vlm · · Score: 1

      For those who don't get the "joke" he's about as close to being an insider as a outsider can be.
      It would be kind of like Alan Cox posting a GIT commit in the 3.0 series using Linus's account for April Fools Day, although thats technically wrong, no ones going to freak out, or at least his odds of waterboarding are no greater than any other random innocent civilian, in other words too high in an absolute sense, but in a relative sense pretty low odds... Actually putting this in writing probably ruins the chances of Alan and Linus doing this as a april fools joke...

      --
      "Science flies us to the moon. Religion flies us into buildings." - Victor Stenger
    6. Re:What no Guantanamo Bay for him? by Anonymous Coward · · Score: 1

      Such is the power of the Octocat.

    7. Re:What no Guantanamo Bay for him? by TheNinjaroach · · Score: 5, Informative

      Because of its distributed and decentralized nature, it would be very difficult to sneak any changes into a project or its history undetected. Every other copy of the project repo will begin screaming "foul play" when their developers try to sync.

      --
      I went to eat some animal crackers and the box said, "Do not eat if seal is broken." I opened the box and sure enough..
    8. Re:What no Guantanamo Bay for him? by abigor · · Score: 2

      Oh wait.. this is an open source community that understood what his intentions where and didn't have a knee jerk reaction.
      What I guess intelligence trumps mass panic and ignorance.

      That's exactly wrong. GH freaked out and banned his account after the Rails team repeatedly closed his bug reports. This story has been on Hacker News for a while now, so you can head there for the full story. His account was eventually reinstated after it was made clear to GH that they behaved poorly.

    9. Re:What no Guantanamo Bay for him? by Jozza+The+Wick · · Score: 1

      Sounds like an example of that ancient Vulcan proverb... only Nixon could go to China.

    10. Re:What no Guantanamo Bay for him? by DarwinSurvivor · · Score: 1

      The very page you linked to quotes him as saying it's fake.

    11. Re:What no Guantanamo Bay for him? by cnvandev · · Score: 2

      Not exactly - he was suspended while they investigated the incident, not when he reported the bug. As they explained on their blog yesterday, their standard procedure is to suspend accounts that get into this kind of thing until they investigate the incident to see if there was anything malicious happening. They determined there wasn't so they reactivated his account. I'd say GitHub handled the situation excellently.

    12. Re:What no Guantanamo Bay for him? by makomk · · Score: 1

      Not really. Suppose you sneak in a boring-sounding commit from one of the core developers of a project. That developer probably won't notice because it's lost amongst the other commits, and even though no-one else will be able to push changes until they merge the malicious commit into their own copies, that's so common in a multi-user repository that all the developers will probably do it without a moment's hesitation.

  3. Nice hacker by fluffythedestroyer · · Score: 1

    Well this is an ironic situation. Good thing he had good intentions lol. I find it funny that since this guy hacked github and they fixed it. But seriously, shouldn't people hire hackers like him to make projects move faster ? l Sincerely believe that if they "work" together, projects would move faster for sure lol.

    1. Re:Nice hacker by vlm · · Score: 5, Informative

      I find it funny that since this guy hacked github

      See that's the problem. He didn't hack github. There is a wide open door in scaffolded rails apps. I am somewhat involved in rails development and even I know this, but "most people don't care". The problem in as few words as possible is a lack of input sanitation and/or more or less is the equivalent of allowing SQL injection. Makes for easy scaffolding and rollout. All you need to do is tell rails which attributes people should and should not be able to F with, which is trivially easy and impossible to default without turning rails into a fully cognitive AI system smarter than the programmers who refuse to declare which attributes are sensitive and which are not....

      The phrases you don't know to google for are "mass assignment protection" and attr_accessible and attr_protected

      http://enlightsolutions.com/articles/whats-new-in-edge-scoped-mass-assignment-in-rails-3-1

      --
      "Science flies us to the moon. Religion flies us into buildings." - Victor Stenger
    2. Re:Nice hacker by NonUniqueNickname · · Score: 5, Insightful

      This is NOTHING like lack of sanitizing or SQL injection.

      Suppose your object has fields "name" and "is_special", and the web form only exposed "name" because "is_special" isn't supposed to be changed by regular users. The hacker who knows "is_special" exists, adds an "is_special" field to the web form on his browser and submits it. The developer probably uses "update_attributes" to process the form, and with default Rails settings it will commit the new "is_special" value to the database (properly sanitized, of course).

      To prevent this, the developer may switch the settings to white-list, and provide a list of safe attributes for mass-assignment (update_attributes being one of the mass-assignment methods). Some people believe white-list mode should be the default settings. The hacker, probably being one of these people, found a great way to make his point that even seasoned Rails developers could use a push towards using white-lists.

    3. Re:Nice hacker by TheNinjaroach · · Score: 4, Insightful

      This is NOTHING like lack of sanitizing or SQL injection.

      Yes, the act of processing user-supplied data in an unintended manner is exactly what "lack of sanitizing" means.

      --
      I went to eat some animal crackers and the box said, "Do not eat if seal is broken." I opened the box and sure enough..
    4. Re:Nice hacker by vlm · · Score: 3, Informative

      Also, the process of carefully crafting weird http traffic to insert unexpected things is exactly the process for SQL injection, except obviously strange non-developer intended attributes are being inserted instead of "sql EOL character followed by big sql fun" from a classic sql injection attack. Its a very close analogy... The meta-rule that both specific rules lives under is if you're depending on the general internet public to send you something, you can expect someone out there to send you some absolutely crazy stuff and you better be prepared for absolutely anything. If you're not planning on getting UTF-16 encoded XML with embedded COBOL source code for an Intercal interpreter, there's someone in China coding it up right now, so you better get ready for it...

      His alternative way to describe how it works and at least one way to avoid it was pretty good, regardless of his analogy analysis skills... I though "as few words as possible" and "more or less the equivalent" was about as wishy washy as I could be when tossing an analogy out there. True, I may have a low /. UID, but I wasn't exactly Moses reading the commandments off the tablets there... And if I was I'd have better commandments than this one...

      --
      "Science flies us to the moon. Religion flies us into buildings." - Victor Stenger
    5. Re:Nice hacker by Saxophonist · · Score: 2

      I've barely worked with Rails, but from what you're describing, isn't this bug somewhat like the security problems with register_globals in PHP, which started defaulting to "off" almost a decade ago?

      Everything old is new again...

    6. Re:Nice hacker by Anonymous Coward · · Score: 1

      register_globals was even removed from PHP 5.4

    7. Re:Nice hacker by NonUniqueNickname · · Score: 1

      I was thinking sanitation as in string sanitation and SQL injection as in '); drop table students; --. Thanks for pointing out the bigger picture, TheNinjaroach, vlm. I retract the word "NOTHING" from my previous post.

  4. Strategic software by aglider · · Score: 5, Insightful

    I think it's time to think about repository for strategic software, like Linux, GCC and so on.
    Such a hacking can compromise a large part of the internet. Because someone can introduce backdoors, the nasty ones I mean, so deep to evade any check.

    --
    Sent as ripples into the electromagnetic field. No single photon has been harmed in the process.
    1. Re:Strategic software by cr_nucleus · · Score: 3, Insightful

      Such a hacking can compromise a large part of the internet. Because someone can introduce backdoors, the nasty ones I mean, so deep to evade any check.

      Well, as far as git goes, you can't make changes undetected because all commits are signed and all clones of a repository have the whole history log.

    2. Re:Strategic software by FunkyELF · · Score: 3, Interesting

      I think the use of Git makes it pretty safe to begin with.
      If someone gained access to do commits to what people consider as the "master" repo, any tampering would have to be done at the head because of all the hashes.
      Hopefully the maintainer would realize this the next time they go to push to it Git would tell them that the remote is ahead of them by X commits.
      In the case of Linux, I think Linus is the only one who pushes to the master branch, so he would notice.

    3. Re:Strategic software by sardaukar_siet · · Score: 1

      Software survives. If not, it's not good enough. You propose placing it in isolation - that does not breed resilience.

    4. Re:Strategic software by lindi · · Score: 1

      Are all commits really signed? I though you could only sign tags.

    5. Re:Strategic software by mortonda · · Score: 2

      Yes, the id of every commit is a cryptographic hash of the contents of that commit, which inherently includes the state before it; if you tried to insert a commit in the middle of the commit tree, all the id's would change, or not compute... Hard to say what would happen, because it just won't work. The tools would all scream at you. It would be very obvious, if it could even be done.

      They may not all be "signatures" in the sense of identifying who committed it, but it *does* validate the consistency of the source tree and the commit.

    6. Re:Strategic software by aglider · · Score: 1

      You got it right. That was my goal and I got it.
      But you failed to get my point: the fun.

      --
      Sent as ripples into the electromagnetic field. No single photon has been harmed in the process.
  5. distributed by StripedCow · · Score: 5, Insightful

    Fortunately, git is a distributed version control system, meaning that, usually, there is a copy of the sources and history information elsewhere.

    --
    If Pandora's box is destined to be opened, *I* want to be the one to open it.
    1. Re:distributed by MadKeithV · · Score: 2

      you don't have any idea how GIT works, do you ? or maybe you are FUDding ?

      two words: distributed and Cryptographic authentication of history

      No, I have no idea the cryptographic details of GIT works - I was responding to the information in the post above mine with a hypothetical evil genius scenario in my limited understanding of DVCS (i.e. copies of stuff in multiple places). I am happy to read that it seems the developers of GIT are smarter than those that developed Sourcesafe. Which isn't a herculean feat.

    2. Re:distributed by TheNinjaroach · · Score: 1

      This informative and highly-modded comment appears to be lost on so many other highly-modded (but incorrect) posts.

      --
      I went to eat some animal crackers and the box said, "Do not eat if seal is broken." I opened the box and sure enough..
    3. Re:distributed by makomk · · Score: 2

      It's also used for distributed development, which means that usually all the copies of the source and history information have pulled from the upstream GitHub repository and will contain any malicious code that was committed to it.

  6. I felt a great disturbance in the Force by Anonymous Coward · · Score: 5, Funny

    ...as if millions of voices suddenly cried out from coffee shops in terror and were suddenly pwned. I fear something terrible, and totally predictable, has happened.

    Just wait a few years, Ruby on fails will strike back!

  7. The response of 99.9% of humanity: by tpstigers · · Score: 2, Insightful

    What's GitHub?

    1. Re:The response of 99.9% of humanity: by Lunaritian · · Score: 5, Insightful

      This is Slashdot, the 99.9% doesn't come here

    2. Re:The response of 99.9% of humanity: by project5117 · · Score: 5, Funny

      This is Slashdot, the 99.9% doesn't come here

      Slashdot, home of the 0.1%.

    3. Re:The response of 99.9% of humanity: by vlm · · Score: 1

      This is Slashdot, the 99.9% doesn't come here

      Getting close, UID 2018246, I see that 1e9*0.001 = 6000000 so apparently you show we're more than 1/3 of the way there... What is the largest /. UID and how does it compare to six million? I donno how to account for astroturfing and spam and gnaa accounts, on the other hand lots of people read and few open accounts to write, so we're probably breaking into the 99.9% range.

      --
      "Science flies us to the moon. Religion flies us into buildings." - Victor Stenger
    4. Re:The response of 99.9% of humanity: by specific · · Score: 1

      You must be new here.

      --
      If you lend someone $20 and never see that person again, it was probably worth it.
    5. Re:The response of 99.9% of humanity: by gnapster · · Score: 1

      Plus, the number is probably slightly inflated by slashdot users who periodically create new accounts just to check and see the current count.

      Also, Don't forget the 0.0001 * $WORLD_POPULATION accounts that are owned by Michael Kristopeit.

    6. Re:The response of 99.9% of humanity: by Hyperhaplo · · Score: 1

      Millions? There's only one of you.. and boy are you prolific... and somewhat talented. Up at all hours, hammer and tongs sometimes.. you can go for weeks on end posting all sorts of enlightened prose along with complete bullshit.

      My hat off to you, Anonymous Coward, without you /. just wouldn't be the same.

      Just like Github isn't exactly the same as it was before

      wow how come I commit in master? O_o

      --
      You have a sick, twisted mind. Please subscribe me to your newsletter.
    7. Re:The response of 99.9% of humanity: by thunderclap · · Score: 1

      A redneck wal-mart.

  8. Real Hacker by stanlyb · · Score: 5, Insightful

    This guy is very good example of what the real hacker is, and what they should be. Kudos man.

    1. Re:Real Hacker by Anonymous Coward · · Score: 5, Informative

      Yes. Just yes.

      He did a. They ignored him.

      He did b, too. He filed a ticket. The ticket got closed, just like that.

      He could've just done nothing and waited for someone to mess up Github. Instead he shouted louder.

      More props to this guy.

      And btw his Octocat tattoo is henna (meaning fake, not a real tatttoo), to all you attention-deficit idiots.

    2. Re:Real Hacker by Anrego · · Score: 5, Informative

      Except he did both a and b, and they basically told him to go pound sand.

      c. Demonstrate the vulnerability in a somewhat childish yet harmless and hilarious manner. Give everyone a good laugh, raise more awareness of the issue, and give the rails yet more security related black eyes!

      Seems reasonable enough to me!

  9. Re:GitHub hacked by larry+bagina · · Score: 5, Informative

    github paid accounts can have private repositories.

    --
    Do you even lift?

    These aren't the 'roids you're looking for.

  10. Re:Hacked vs Cracked by schnikies79 · · Score: 1

    Words change. Either move on with everyone else or be left behind.

    Your choice.

    --
    Gone!
  11. Re:Hacked vs Cracked by nigelegin · · Score: 2

    In this situation, the term hacking is the correct usage of the term. As per your posted link,

    "Hackers will sometimes do questionable legal things, such as breaking into systems, but they generally will not cause harm once they break in."

    Homakov only made superficial changes to allow him to commit a snide remark to illustrate and publicize the inherent weakness in a cloud storage system used by many independent developers and commercial entities.

    In almost any other situation I would side with you on the horrible misuse/overuse of the term "hacking".

  12. Lucky it was a white hat by GameboyRMH · · Score: 1

    That could've gone a lot worse...and to think many stupid countries are trying to make such benevolent activities illegal.

    --
    "When information is power, privacy is freedom" - Jah-Wren Ryel
  13. Re:Hacked vs Cracked by vlm · · Score: 1

    the inherent weakness in a cloud storage system

    You may want to look at what he actually did. The problem is people who don't understand "mass assignment protection" dumping rails apps on the internet with CRUD functionality and "sensitive" portions of the data.

    There's an inherent conflict between just being able to scaffold something up "instantly" and keeping certain attributes locked away from the average users, and this inherent conflict has never been decisively resolved. Any time you have a tool that makes it easy to CRUD, you're going to end up with people going too far and not protecting anything. Going crazy and locking it down is just going to make the 99% of users who don't need it fork, and the 1% who do need it only putting in enough effort to re-open it.

    --
    "Science flies us to the moon. Religion flies us into buildings." - Victor Stenger
  14. Re:GitHub hacked by jeffmeden · · Score: 2

    So, somebody hacked into a computer system to gain access to open source software. Brilliant.

    If you can't imagine a way that unfettered access to *alter* an exceptionally popular piece of software, virtually undetected, would be useful to someone with unscrupulous intent, then good for you for being so pure of heart. However, in the rest of the world, access like that can be absolutely devastating.

  15. Re:GitHub hacked by gmuslera · · Score: 1

    Looked more like that showed a vulnerability on it.

    The real danger are the ones that could had been exploiting it and didn't announced that... and then, modified some obscure core component in a not very monitored repository to introduce a trojan or backdoor into some widely deployed open souce software based on it (i.e. not sure if that problem would make able to mask a commit as one from a trusted and active developer)

  16. The devs were notified and ignored it by dnwq · · Score: 5, Interesting
    The best thing is this comment by a developer closing Homakov's original bug report, two days before Homakov hacked in:

    fxn commented 3 days ago

    There was a proposal about changing that flag in #4062 and the consensus is the pros of the default configuration outweigh the pros of the alternative.

    Thanks!

    Apparently GitHub's own admin isn't "pro" enough...

    1. Re:The devs were notified and ignored it by MadKeithV · · Score: 2

      Apparently GitHub's own admin isn't "pro" enough...

      I tried reading that thread but the language is convoluted and I know next-to-nothing about rails - am I reading it right - the devs were essentially saying "pro users know how to secure their installs!" and then got pwned themselves with the exact hack that Homakov had reported?

    2. Re:The devs were notified and ignored it by dnwq · · Score: 4, Interesting

      Not precisely right: the devs were saying "good users know how to secure their installs" and then Homakov demonstrated just how untrue this was by breaking into what is probably the world's most important and professionally-run Ruby on Rails server, i.e., GitHub. That Rails itself is hosted on GitHub just makes it funnier.

    3. Re:The devs were notified and ignored it by Medievalist · · Score: 2

      am I reading it right - the devs were essentially saying "pro users know how to secure their installs!" and then got pwned themselves with the exact hack that Homakov had reported?

      You're reading it right. And he actually had to blatantly pwn them repeatedly before they would deign to take notice, and even then they didn't do anything abou it until they got ridiculed across the entire Internet.

      Makes the (broken) PHP development community look relatively sane.

  17. The response of 99.9% of Web Developers by tommeke100 · · Score: 1

    Matt Damon

  18. I'll just put this here by eternaldoctorwho · · Score: 1
  19. Well *All* the code is fine. by Anonymous Coward · · Score: 1

    Fortunately, GIT itself, which is a replicated central code revision system, isn't vulnerable to single point repository attack. Thus, he could've injected something, but *any* of the developers would've noticed when they tried to sync local and remote repos. (In fact, this is probably how his commit was discovered.)

    So, for all you worry-worts complaining about possible code injections into src, there shouldn't be anything to worry about.

  20. Re:Linux security or trust by Anonymous Coward · · Score: 4, Informative

    That is rather easy to answer. Git is a distributed version control system such that you can't make changes without it being noticed by the real authors. See ... http://git-scm.com/about ... for a better explanation. To get something malicious into the code you will need to get into the primary lieutenants source trees.

  21. Re:Linux security or trust by Kjella · · Score: 4, Informative

    The master branch isn't on github, if there was any tampering a trivial check against Linus' master branch would see if there'd been any extra git commits. Nobody has to go through more than that. By the way, it's also impossible to insert an "old" commit in git because you'd have to reapply every subsequent patch and all the ids would change. But I guess that you're scaremongering and the mods are either clueless or feeding the troll.

    --
    Live today, because you never know what tomorrow brings
  22. No way by Anonymous Coward · · Score: 1

    Not with git.

    Git is designed from start make any such messing with the source code instantly evident. That's because every developer has a full copy of the source code _and_ history, cryptographically signed. So if anybody changed a comma in any file it will be _immediately_ evident. Much more than a red cloud around you in a public pool. It also makes losing the history of the code virtually impossible (I mean git, not the red stuff around you).

  23. Re:GitHub hacked by cavreader · · Score: 1

    The real danger was the people who knew of the vulnerability for quite a while and did nothing to fix it.

  24. Re:Hacked vs Cracked by Anrego · · Score: 1

    At this point this is practically a troll.

    The battle is over and we lost. Insisting on differentiating between hacking and cracking is just silly now. The word never caught on and never will.

  25. Re:GitHub hacked by vlm · · Score: 3, Interesting

    If you can't imagine a way that unfettered access to *alter* an exceptionally popular piece of software, virtually undetected

    I can't imagine a way to do that with git. Sorry, its just pretty hard to do, especially "virtually undetected". git just doesn't work that way. Probably a hell of a lot easier and more likely to succeed and frankly cheaper to get commit rights "the right way" and then sneak in 100 perfectly legit real world commits and just one with an intentional bug or issue or whatever. Now, if by "... alter ... popular ... software.." you mean something like modify the github site and user provided data itself to point to some images on some .ru domain that include yet another drive by MSIE exploit, sure that could probably have been done. But the git hosted projects are basically safe, assuming anyone is actually using them.

    Which brings up an interesting attack vector, if you find generic abandoned mp3 player number 2352 on sf or github and "take it over" by whatever means, then you could put weird stuff into it without anyone noticing since no one git pulls it. This could be a problem.

    --
    "Science flies us to the moon. Religion flies us into buildings." - Victor Stenger
  26. Re:Hacked vs Cracked by qrwe · · Score: 1

    It is not troll. A spade is always a spade, whatever else you may want to call it.

    --
    There are 2 types of people in the world - those who understand decimal and those who don't.
  27. Re:Linux security or trust by pankkake · · Score: 4, Funny

    Thankfully, no serious projects are hosted on GitHub.

    --
    Kill all hipsters.
  28. Re:Linux security or trust by TheRaven64 · · Score: 5, Informative

    That's idiocy on the part of the submitter. Linux is mirrored on github, and it was the authoritative repository for a while after kernel.org was hacked, but now it is not the authoritative repository and patches from there will not be pulled into the official tree unchecked.

    --
    I am TheRaven on Soylent News
  29. No, that's what you get for using a dying language by Barbara,+not+Barbie · · Score: 5, Funny
    ... among other things.

    Ruby on Rails - the perfect blend of poor performance (Ruby) and gaping holes (Rails).

    --
    Let's call it what it is, Anti-Social Media.
  30. WTF were they smoking? by miketheanimal · · Score: 5, Insightful

    OK, the blog is slashdot'd at the moment, but lets see if I have this right. Basically, you take an active record and just copy values from the POST data into it and then save it ... and this is the default behaviour? Do I have that right because, is so .... .... dear god, what were the ruby-on-rails people smoking when they thought that was a clever idea, its puts ROR on a level with PHP and its magic global variables. Note only that, but what were the github people smoking, the same? Using an insane facility is doubly insane. Methinks a lot of people need to go and read some web design stuff and realise that active records (or models - django users take not) are not synonymous with the "Model" (business logic) in MVC.

    1. Re:WTF were they smoking? by gl4ss · · Score: 3, Informative

      Pardon some of my ignorance but isn't the point of using "smart" frameworks that you wouldn't need to worry about that stuff since the framework should _know_ what parameters it's asking the users browser to submit?

      surely there has to be a framework designed with that in mind? "serve the user this blabla page that has these blabla input boxes"-> from the response just read those.

      seems that rails(and how github was using it) was moving business logic to random users computers and effectively taking them as a trusted part of the system? maybe the devs should spend more time playing online games and seeing crack cheaters.

      --
      world was created 5 seconds before this post as it is.
    2. Re:WTF were they smoking? by psydeshow · · Score: 2

      Pardon some of my ignorance but isn't the point of using "smart" frameworks that you wouldn't need to worry about that stuff since the framework should _know_ what parameters it's asking the users browser to submit?

      surely there has to be a framework designed with that in mind? "serve the user this blabla page that has these blabla input boxes"-> from the response just read those.

      seems that rails(and how github was using it) was moving business logic to random users computers and effectively taking them as a trusted part of the system? maybe the devs should spend more time playing online games and seeing crack cheaters.

      As I understand it, Rails isn't taking just any fields that a user submits. It's actually checking the fields against the model and only assigning the ones it recognizes. So yeah, it "knows" the parameters it is seeing and they are all valid so we're good to go.

      Except that there are fields in any model that the user *shouldn't* be able to change via form. And lo, there is a mechanism in Rails to flag those fields in the model so that this sort of things doesn't happen: attr_accessible flags.

      But attr_accessible is simplistic, and doesn't take into account that some users can change fields that others can't. Developers *should* be marking up the model for the most restricted case and then using manual assignments for users with elevated privilege. But compared to banging out a model and dropping it in and having everything just work, that's a pain in the ass.

      Unless the framework can make assumptions about how access control works (att_accessible_admin, attr_accessible_editor, attr_accessible_guest etc), there is no easy way around the problem.

    3. Re:WTF were they smoking? by AlXtreme · · Score: 2

      Except that there are fields in any model that the user *shouldn't* be able to change via form. And lo, there is a mechanism in Rails to flag those fields in the model so that this sort of things doesn't happen: attr_accessible flags.

      Madness... when defining the form you explicitly define which attributes of the model may be submitted and modified and everything else is ignored. Forms should be the filter between the crap a user may submit and your precious model.

      Django does this right in my eyes: allowed attributes need to be stated in the Form if you don't want all fields displayed. If you have different types of users present those users a different form with corresponding list of attributes and additional validation. Subclassing forms makes this trivial to implement and you explicitly whitelist those fields that are allowed to be modified by a particular user.

      Not that Django is perfect, but I'm amazed that RoR requires/required blacklisting model attributes instead of handling this explicitly in the form. Kudos to the hacker for outing this design-flaw.

      --
      This sig is intentionally left blank
  31. Re:GitHub hacked by Electricity+Likes+Me · · Score: 2

    Indeed, I know a few people who are working on some commercial software with one. This is kind of a big deal (although the risk that someone made subtle alterations to say, the Linux kernel, is also a very big deal).

  32. Re:Linux security or trust by autocracy · · Score: 4, Informative

    This was brought up when kernel.org was compromised last year. The decentralized nature of git makes that really hard to sneak by, especially if you use the kind of process controls that the Linux kernel uses. Legitimate commits go through maintainers, and maintainers will definitely flip if they see code pulls into their repository that they didn't commit. Some deeper discussion about how you can't just sneak things into the past history is here: http://security.stackexchange.com/a/6771/836

    --
    SIG: HUP
  33. Re:Linux? Since when? by miknix · · Score: 2

    "Over the weekend, developer Egor Homakov exploited a gaping vulnerability in GitHub that allowed him (or anyone else with basic hacker know-how) to gain administrator access to projects such as Ruby on Rails, Linux, and millions of others.

    Linux??? Can we mod summary as troll? Linux has its origin repository in kernel.org and is distributed over cloned repositories all over the world including my laptop. One can't simply inject a commit into one of those repositories (such as github) and expect it to automatically propagate into kernel.org.

    Furthermore, even if you manage to inject a commit into some random project at Github, high are the chances that it would be detected by another developer. Who commits to a repository without reading the commit history?
    Now, this Rails vulnerability is rather serious and deserves attention but this article is just plain FUD against github. Congratulations!

  34. He got the results he wanted by Tchaik · · Score: 5, Informative

    At least the message was understood loud and clear... It took a couple of hours and a commit to Rails was made to change the default: https://github.com/rails/rails/commit/641a4f62405cc2765424320932902ed8076b5d38

  35. Re:Linux security or trust by MightyYar · · Score: 1

    Who can really go over every line of code in the source to make sure someone hasn't already snuck in something malicious years ago?

    Your local repository of git?

    --
    W..w..W - Willy Waterloo washes Warren Wiggins who is washing Waldo Woo.
  36. Re:GitHub hacked by rioki · · Score: 4, Informative

    Actually not, if it is a legit commit as Linus... That is the extent he can fake any account...

  37. Frank Drebin knows what to do. by Beelzebud · · Score: 1
  38. Re:it could have been worse by tuffy · · Score: 2

    Which would be noticed the next time anyone does a push to the repository. There'd be an unexpected non-fast-forward push, and git would force developers to deal with it by default.

    --

    Ita erat quando hic adveni.

  39. Re:Hacked vs Cracked by DeathFromSomewhere · · Score: 1
    --
    -1 overrated isn't the same thing as "I disagree".
  40. Re:Hacked vs Cracked by qrwe · · Score: 1

    Touché! :-)

    --
    There are 2 types of people in the world - those who understand decimal and those who don't.
  41. irresponsible by rilian4 · · Score: 1, Funny

    Why do people who gain such knowledge insist on pulling this kind of crap. Why not just attempt to disclose the bug to the site owners and let them fix it. If they refuse, post the info publicly to force their hand. Defacing a project on the site is like a 3 year finding a crayon and looking up and seeing that there's a wall to draw on.

    --

    ...quicker, easier, more seductive the darkside is...but more powerful, it is not.
    1. Re:irresponsible by Zironic · · Score: 4, Informative

      He did disclose the publically.
      The developers thought it was working as intended.
      He hacked the site to show that they're morons.
      They patched the issue.

  42. They KNEW about this vulnerability? by msobkow · · Score: 1

    When did Microsoft and Oracle start doing Open Source maintenance? Or did the GitHub team download their development principles and follow those instead of doing security reviews?

    Both Microsoft and Oracle are notorious for leaving reported bugs open for years unless someone demonstrates an effective exploit using the bug. But historically, Open Source projects have taken such risks seriously and closed the holes long before an exploit showed up.

    To me, that "constant maintenance" aspect of open source is it's biggest selling point compared to closed-source products. Not only can people review code and find weaknesses, they can either fix them or submit them as bugs for a project, secure in the knowledge that it will be dealt with.

    Apparently that's not the case with all OSS projects. And that's a shame -- because aside from vendor lock-in, this has always been one of the most important "features" that the OSS cognoscenti have preached.

    I consider the application of timely repairs and updates so important to security that I built a system whose primary purpose is not to develop initial core application code, but to apply such fixes to all projects under maintenance!

    --
    I do not fail; I succeed at finding out what does not work.
    1. Re:They KNEW about this vulnerability? by Myen · · Score: 1

      There are two groups of developers here.

      Ruby on Rails, the framework, had developers that knew about this general class of vulnerabilities - it's easy to write code that ends up being buggy.

      GitHub, the web site (that runs on Rails, and hosts the Rails source repository), knew about the general class of vulnerabilities but not that they had these particular instances of them.

      It appears that Homakov tried to get Rails to change the defaults so that these things can't happen unless you ask for them, and was rejected as making the framework more difficult for prototyping use; the opinion on the bug was something along the lines of "the developer using the framework should be protecting against this". He then demonstrated in frustration that this was a bad default, since GitHub is one of the leading sites using the framework and is developed by people generally thought of as knowing what they are doing.

      It appears that this has worked and the opinion of the framework developers have changed, and no real damage was done, other than possibly reputation.

      GitHub, overall, seemed to be collateral damage.

      P.S. I don't think GitHub is open source; Ruby on Rails is.

  43. Re:Yet another reason... by Anonymous Coward · · Score: 1

    I use a Mac (well, my laptop is a mac, at least), and I program in Ada. That's definitely a "real goddamn language".

  44. Re:PHP by tibman · · Score: 1

    like facebook? hardly anyone uses that piece of crap.

    --
    http://soylentnews.org/~tibman
  45. Re:Hacked vs Cracked by Deathmoo · · Score: 1

    This guy should be given a medal. It's not often people will take personal risks for the greater good. Even some of those his actions were to benefit the most aren't properly thankful. I tip my hat to you sir.

  46. Re:PHP by DarwinSurvivor · · Score: 4, Funny

    I'm fairly certain the amount of PHP in your standard Ruby on Rails installation is relatively minor.

  47. Re:No, that's what you get for using a dying langu by steveb3210 · · Score: 4, Insightful

    This isn't actually a hole in rails..  If you use mass assignment, you need to protect attributes you don't want assigned with attr_protected on your model.

    If you don't want people to do this:

    @user.update_attributes({:favorite_color => 'blue', :password => 'hacked'})

    You need to do this:

    class User < ActiveRecord::Base
      attr_protected :password
    end

  48. Re:PHP by Anonymous Coward · · Score: 1

    hardly anyone uses that piece of crap

    Half right

  49. Re:GitHub hacked by lgw · · Score: 1

    Sorry, its just pretty hard to do, especially "virtually undetected". git just doesn't work that way.

    So you're pretty safe, unless someone used a hack that gave him admin access over where the source code for git was stored, and might subtly change the way git works so that it's not so safe after all. Oh, wait ...

    A successful "Thompson hack" would be devastating, git adds a new vector vector for one, and this is one heck of a scary vulnerability to be ignored by the maintainers (fortunately, they did fix rapidly once this stunt happened - but what happened in the past?)

    --
    Socialism: a lie told by totalitarians and believed by fools.
  50. Re:Linux security or trust by lgw · · Score: 1

    If git itself is hacked cleverly enough, pulling in an innocuous change to the linix source using get also pulls in the malicious code secretly. Someone might catch it by inspection with other tools - or might not! This is why "Thompson hacks" are scary - if you can mess with the basic tools, you can be very subtle.

    --
    Socialism: a lie told by totalitarians and believed by fools.
  51. Re:Linux security or trust by TheRaven64 · · Score: 1

    In this case, however, git itself was not hacked. The web interface of github was hacked.

    --
    I am TheRaven on Soylent News
  52. Re:GitHub hacked by DrXym · · Score: 1
    It wouldn't be "undetected". There would be a log of your change sitting in the github repo and any clone which pulled from it. In a high activity project that commit might go unnoticed or unreviewed but it would be in the log and potentially someone could spot it and revert it.

    The issues is a privilege escalation exploit. Git has no permissions model whatsoever. If you can access a git repo you can do anything you like to it with any name or address you like. Git doesn't care at all. Instead you're supposed to use something like ssh+git, or GitHub or Gitolite etc to act as a gatekeeper and enforce permissions or access to the project. I assume the exploit author figured a way to con GitHub into letting him do anything to the project by bypassing this permissions check in some manner. Perhaps that involves passing a malformed cert, screwing around with cookies or otherwise breaking the permissions in a way that gave him the role he was after to do his commit, or perhaps it was a bug in the admin forms for the website which allowed him to grant those permissions to himself.

  53. Re:GitHub hacked by Anonymous Coward · · Score: 1

    Linus (who WROTE git) would probably find it suspicious that a commit he supposedly made to github wasn't present in his personal git tree.

    You might be right, but anytime you're relying on the fact that someone will "probably find" something, you're fucked.

  54. Re:GitHub hacked by kangsterizer · · Score: 1

    But would he actually look at all commits? Nope, hundred, thousands, you gotta trust where its coming from if it said signed off by .

    But hey, there's more. We invented a way to make sure "signed off" is _actually_ the person who say they signed off. It's called a cryptographic signature. And it's generally implemented through GnuPG.

    It happens that GIT now support per commit GPG signature for this reason (after telling me so many times "oh we don't see the point for implementing it"). Regardless, if everyone signs the commits and everyone checks the signatures locally via a list of people you trust for commits, any other commit will get rejected/you get a fat warning, etc.

    The point with this is that you should be able to pull from anywhere, GitHub, a ssh server, anywhere, and be able to trust the commits. Otherwise, distributed development doesn't make sense security-wise. GitHub got "compromised" this time, it will be another host the next time (or them again), there is no "its fixed now".
    Bugs exist, bugs are there, bugs will be there too. You just haven't discovered them yet. So, do use commit signing.

  55. How do you verify your git repo? by loom_weaver · · Score: 1

    To calm any fears that no rogue commits have been added as a result of this hack?

    Is git log enough and looking at the last datetime stamp?

  56. Re:Gosh, Github.com runs Linux: Isn't it 'secure'? by Anonymous Coward · · Score: 1

    Git was written by Linus - the inventor of Lunix. It's a fact that Microsoft Windows is 67% more secure than Lunix which is why do many of my clients gave up on their forays in to Lunix. Yesterday I wiped my last installation of Lunix from my computer. Within 37 hours I was happily running Windows 7, and my glout cleared up. Coincidence? I think not.

    Want to stick with Lunix! I'll be by my loving God's side, laughing at you as you burn in Hell. Wait, is this thing on?

  57. Re:GitHub hacked by LiquidFire_HK · · Score: 1

    But git is stored in git, so to sneak stuff into it in order to break git's security, you would have to break git's security first.

    On the other hand, hiding malicious changes in otherwise legit-looking commits is a whole different issue that has nothing to do with github or git.

  58. Re:GitHub hacked by lgw · · Score: 1

    But git is stored in git, so to sneak stuff into it in order to break git's security, you would have to break git's security first.

    With this flaw, couldn't you commit to the git codebase as Linus (or anyone legit) though? Of course, whomever you impersonated might notice.

    On the other hand, hiding malicious changes in otherwise legit-looking commits is a whole different issue that has nothing to do with github or git.

    Well, you'd need to do this once the normal way to break git, but having done that the 'hiding' part would become trivial (well, with git's tools).

    --
    Socialism: a lie told by totalitarians and believed by fools.
  59. Re:Linux? Since when? by Wraithlyn · · Score: 1, Funny
    --
    "Mind, as manifested by the capacity to make choices, is to some extent present in every electron." -Freeman Dyson
  60. Re:PHP by DaVince21 · · Score: 1

    Have you heard the stories about what a huge clusterfuck the Facebook code is?

    --
    I am not devoid of humor.
  61. Re:No, that's what you get for using a dying langu by kwerle · · Score: 3, Insightful

    While it's true that it was sloppy coding, it is also true that the default is not really safe - and it probably should be.

  62. In defense of Rails... by edelbrp · · Score: 1

    In defense of Rails, this isn't a bug, vulnerability, exploit or weakness of RoR its self. The "update_attributes" functionality on a model (which writes new values to a database row) has to be used very carefully. Anybody worth their salt with RoR should know that. If you blindly pass a unsanitized/unfiltered hash directly from the submission from a user to update_attributes, you are definitely asking for trouble and/or are lazy/ignorant at best, imho.

    1. Re:In defense of Rails... by makomk · · Score: 2

      As far as I can tell, the entire point of update_attributes is that it's easy to pass unsanitized data directly from a user request to it and this makes rapid development of Rails applications simpler. Supposedly pretty much no major Rails applications get this right, so it's not surprising the one hosting the Rails Git repository doesn't either.

  63. Re:Linux? Since when? by miknix · · Score: 1

    That pretty much summarizes it :P quite funny also, thank you!

  64. Re:GitHub hacked by mwvdlee · · Score: 1

    everyone checks the signatures locally via a list of people you trust for commits

    Somehow this screams "bad idea" to me.

    --
    Slashdot social media options: AIM, ICQ, Yahoo, Jabber and Mobile Text. Why no MySpace?
  65. Re:Linux security or trust by TheRaven64 · · Score: 1

    A commit made on github by Linus is not automatically pulled into kernel.org. It will be reviewed and merged. Most likely someone would say 'Linus, why did you commit here when you are in charge of the upstream repository? That was a strange thing to do' and he would say 'I did not to that, let us inspect the diff and see if someone has done something malicious'. It's pretty easy to spot this kind of thing...

    --
    I am TheRaven on Soylent News
  66. Re:No, that's what you get for using a dying langu by Eunuchswear · · Score: 1

    This isn't actually a hole in rails.. If you use mass assignment,[...]

    No. The problem is that any idiot who thinks he doesn't need to sanitise user input is going to get fucked.

    And did.

    --
    Watch this Heartland Institute video
  67. Re:Linux? Since when? by Wraithlyn · · Score: 1

    I've been spending too much time on Reddit, where 70% of communication is done with memes. (The rest are puns)

    --
    "Mind, as manifested by the capacity to make choices, is to some extent present in every electron." -Freeman Dyson
  68. Re:No, that's what you get for using a dying langu by steveb3210 · · Score: 1

    So if he just told the model that this is a protected attribute, he would have been fine... Its not hard to do this and its a bug like any other bug, not some systematic problem with Rails itself.

  69. Re:No, that's what you get for using a dying langu by Eunuchswear · · Score: 1

    So, you'd rather go with a system that uses fail-deadly than fail-safe.

    Ok.

    --
    Watch this Heartland Institute video
  70. Wrong target re: individuals preceded him... by Fubari · · Score: 1
    Don't think github. Think about other interesting Ruby on Rails sites. Suppose you could access them all quiet-like. For a longgg time. For example: 1: Basecamp 2: Twitter 3: Hulu 4: Groupon 5: Justin.tv 6: Shopify 7: Campfire 8: Penny Arcade 9: Guitar Hero 10: Wayfaring (from a 2011 top-ten list of RR sites: http://www.railshosting.org/the-top-10-sites-built-with-ruby-on-rails )

    Based on TFA I thought the hack was more about a default flaw with Ruby on Rails key signing, not anything that was specific to github.

    Because of its distributed and decentralized nature, it would be very difficult to sneak any changes into a project or its history undetected. Every other copy of the project repo will begin screaming "foul play" when their developers try to sync.

    The real question is whether other more nefarious individuals preceded him undetected.