Kernel.org has been hacked (see site news)
kernel.org
kernel.org
Anyone with an existing clone of the repos would immediately know the repo has been corrupted when doing a pull (although fresh clones wouldn't be as lucky of course).
We are currently working with the 448 users of kernel.org to change their credentials and change their SSH keys.
With 448 users, something like this was inevitable...
I hope this is true, and the access was not gained via some unknown vulnerability.
Simple social engineering of mundane user accounts is not worrisome. Escalating any old user into root is.
Note that, as mentioned on the site, actually doing this is much harder than simply rooting the servers.
Not unless there's a ton of money involved or some important asset is at risk. This type of thing happens much more frequently than they can manage so they prioritize by severity.
that's also assuming that tags are gpg signed, which they often are not,even on kernel.org
non signed can be actually tampered with and they do need to check the code thoroughly with 3rd party older archives which is a PITA.
Code signing > x, including per commit signing mr Linus T and GIT maintainers.
Note that they were against per commit signing because "when you sign the tag, you sign everything so its ok".
Except you wont read all the patches you sign when you sign the tag, and if any has been modified, as explained, you don't know. Again, per commit signing solves it.
Food for though I guess.
That may not be perfect, but it sounds pretty robust to me.
and that's not just linux.git, but also the ton of other .git's in there, which linus will pull from and will not read every line of.
The caveat here is as real as it can get. usually when it looks "slightly complex" people overlook the security aspect "no one is going to do such an attack"
then the attack happens, often unnoticed, because the attackers aren't lazy if there's a hole they use it.
In order to do that, you need to somehow get Linus to merge it successfully. And that doesn't work per git's design.
If all you want is to have "exploitable" commit IDs in the kernel git, you don't need to do anything sneaky at all! They're already there, being historical bugs that have since been fixed.
sudo su - linus
cd /path/to/linux-2.6.git
modify/exploit code and git commit
I for example do a daily git pull - I will get the the tainted code and not notice it at all.
NO?
What you can't do is inject code that ends up in 3.1-rc5, because before that gets tagged Linus (and a lot of other people) would have to do a merge that would fail inexplicably.
But to be clear: yes, with access to the repository you can (for a brief moment until it's noticed) inject exploit code that will be picked up by anyone building and running an untagged branch HEAD.
If I as a developer then pull and verify signatures, I would note that commit was unsigned and expect the commit to be compromised.
The way git works is that every new commit depends on every commit before it. Since no code is brought into the trees without checking the commit IDs, there's no way that any non-tagged commit could be modified without somebody noticing.
I understand that you don't like git, but you might want to read up on how the kernel is developed before making spurious claims.
"My name is Linus Torvalds and I am your god." - Linus Torvalds http://en.wikiquote.org/wiki/Linus_Torvalds
edit: Why is this being downvoted?
What about code that's hosted on kernel.org itself? Isn't kernel.org a source for the public to get the kernel and not git?
http://www.kernel.org/pub/ ftp://ftp.kernel.org/pub/ rsync://rsync.kernel.org/pub/
It would be easy for the exploiter to insert trojaned/rootkitted kernels into those places.
As one of the users@kernel.org members I can tell you that the kernel.org admins are very competent.
This argument is completely bogus. I could just as easily have happened to any one else including Microsoft, and in those cases we might not even have heard about it.
It already has happened repeatedly to some hardware vendors where an actual payload was injected into their drivers, and they weren't open source.
Between open source and git it's dramatically more likely an injected payload would be detected long before dissemination could take place.
edit: And what ars said.
edit: And the chorus.
So for now it looks like no compromised code has been distributed.
This is more related to weak security policies than OS security flaw.
Hard security is hard.