GitHub has reinstated the account of a Russian software developer who discovered a series of security flaws involving the code repository that he eventually shamed the site into fixing over the weekend.
Egor Homakov discovered a cryptographically-related security bug on GitHub that allowed attackers to gain administrator access to projects such as Ruby on Rails and scores of others. GitHub itself uses a vulnerable Ruby on Rails application framework, the root cause of the problem, leaving the code repository open to attack. Homakov reported this so-called mass assignment vulnerability on the Rails repository.
Administrators deleted the thread on the bug. Homakov reopened a ticket on the flaw (which involves a failure to failure to properly check incoming form parameters), only to be more or less ignored again.
Tired of these shenanigans, Homakov exploited the bug to add his public key to the Rails project on GitHub, making him an administrator of the project. At this point he could have deleted project histories – or worse. Instead, he overwrote timestamps to post a message under the guise of habitually drunken kleptomaniac robot Bender, of Futurama and e-vote hacking fame, that was dated 1,000 years in the future. He also pushed a new (innocuous) file onto the Rails repository.
Homakov explains what he did in a blog post entitled "Egor, stop hacking GH".
Stirred into action, GitHub acted quickly to suspend Homakov over the harmless hack, which it initially treated as a full-on security attack. It also fixed the vulnerability that had allowed Homakov's hijinks, which would have been avoided if his initial reports were taken seriously.
After reviewing Homakov's activity, wiser counsel prevailed and GitHub restored the Russian software developer's account. In fairness, the suspension only lasted a few hours, and GitHub's initial caution was understandable. A blog post by GitHub explained it was Homakov's actions in exploiting flaws to upload his personal key and make changes to the rails project that earned him a spell in the sin-bin.
There has been some confusion over today's security vulnerability and our policy on responsible disclosure and account suspension that I'd like to clear up.
Three days ago, user @homakov opened an issue on rails/rails about the prevalence of the mass-assignment vulnerability. Two days ago he responsibly disclosed a security vulnerability to us and we worked with him to fix it in a timely fashion. Today, he found and exploited the public key form update vulnerability without responsible disclosure. For this reason we temporarily suspended his account for violation of section A8 of the GitHub Terms of Service pending a full investigation into what happened. Now that we've had a chance to review his activity, and have determined that no malicious intent was present, @homakov's account has been reinstated.
GitHub took the opportunity to refer interested parties to its code on vulnerable disclosure. ®