by cormander » Fri Apr 25, 2008 12:12 pm
A distribution that freezes their kernel's version and maintains it via back-ported patches is essentially a fork of the linux kernel. Most mainstream linux distributions do this at least to some extent; RHEL and SLES have kerenls as old as 2.6.9 and 2.6.8 respectively, they still haven't reached their end-of-life, and there are still patches being maintained for them.
Now that development of grsecurity and PaX may not move forward along with the mainstream vanilla kernel, it will have to also essentially be a fork of the linux kernel. This isn't a bad thing, look at some virtualization tools; Xen and OpenVZ. Those are forks of the linux kernel as well, they haven't officially upgraded from 2.6.18 yet (as far as I know). And I have checked a few times, Xen does back-port CVE security patches.
If development can't continue moving forward in the 2.6 tree, then we pretty much have to stick with the 2.6.24.x version. Whether or not Brad chooses to follow a distribution's set of security patches, or maintain his own set, this isn't such a great big deal. It's still a linux kernel, it'll still boot machines which that kernel has drivers for.
I've booted sles9 and opensuse-10.3 with a RHEL5 kernel. I've booted RHEL5 with a fedora 8 kernel. I've booted debian sarge with a RHEL4 kernel. The list goes on and on. I've booted all of the above with both a vanilla kernel and with a grsecurity kernel. I don't believe following patches of a particular distribution are going to break the kernel's ability to boot and serve another particular distribution.
As long as Brad makes his latest grsecurity patch successfully patch a vanilla kernel, he could already be following patches from other distributions and including them inside the grsecurity patch, and you wouldn't have even known it because you patch and build the kernel with grsecurity and it still boots your machine.
It's all about how you package the kernel. If you build a kernel on debian using debian tools, it's far more likely to succeed on that server then if you used a pre-compiled kernel from a completely different distribution. And since all users of grsecurity compile their own kernels on their own systems, we're not going to have a problem.
Right now I'm maintaining the grsecurity kernel as an RPM. It boots CentOS/RHEL 4 and 5, OpenSuSE 10, SLES9, Fedora 8; I haven't tried debian yet but I have no doubt that it'll boot that too (if compiled on a debian server). It all boils down to whether or not your mkinitrd correctly grabs all the kernel modules required to boot your machine. I had a problem the other day where my grsecurity RPM booted my local CentOS machine, but it didn't boot the same CentOS version with all the same packages on a different server with different hardware. I had a look at the initrd that was created at install time, added some modules in there, rebooted, and it came up just fine. For some reason, a module got excluded when the mkinitrd ran; and this could happen to anyone. I've even seen this happen with kernel updates from kernel vendors themselves.
If you actually look at the hundreds of patches inside a big vendor's kernel like RedHat or Novell, most of them are one of the following:
1) fixes to drivers for certain kinds of hardware; software vendors like RedHat have deals with hardware vendors and have to support them
2) fixes to bugs which cause kernel panics (which are generally driver fixes anyway)
3) kernel feature additions such as exec-shield, app-armor, and xen virtualization
4) security fixes, both CVE and non-public/ambiguous patches
Watch a distribution's set of patches, and pick out security relevant ones and throw them into the grsecurity patch. Somebody is going to have to do this to keep the project alive, It's all up to Brad whether or not he does this himself, and either in the form of just patching an already-patched distribution kernel, or patching a vanilla kernel with grsecurity + patches from that distribution included.
I'm perfectly willing to help maintain back-ported security additions to the grsecurity kernel. I'm an avid RedHat user, but personally wouldn't mind if he does choose to follow Debian or Ubuntu because the kernel will still work on machines running a RedHat based OS.