Google Chromium drops support for Linux 3.16 and earlier
lists.debian.org
lists.debian.org
https://code.google.com/p/chromium/issues/detail?id=401655
See comment #47: "Ok, while it sounds like this is technically a regression, I'm going to mark this as Wontfix because there is a reasonable workaround of updating your kernel."
Apparently, Ubuntu 14.04.2 installs a 3.16 kernel by default, and previous 14.04 installs can be updated by installing a bunch of "*-utopic" packages.
The allure of Ubuntu LTS releases (currently 12.04 and 14.04) is the extended support cycle -- practically speaking the kernel is the biggest component of this for a lot of people.
If you use the 3.16 kernel (from Ubuntu 14.10) on 14.04, you are now on a 6 month support cycle [1]. One which doesn't even have defined dates (they're all still TBD). Now you have to keep running on the kernel upgrade treadmill to maintain support, moving to backported kernels from progressively newer Ubuntu releases every 6 months.
[1] https://wiki.ubuntu.com/Kernel/LTSEnablementStack#Kernel.2BA...
Really? I mean, step back from your initial gut reaction and ask yourself how many software developers could even name which version of the kernel their code runs on without checking. Most developers never make a syscall directly and, increasingly, aren't even calling something like libc directly because they use higher-level libraries.
Sure, some people really care cause they recently hit an issue with specific drivers and a few people are using a really new feature, but that's a much smaller group than the number of people running code which doesn't even depend on Linux, much less a specific point release.
Looking at the release notes, I'd say there are a LOT more people affected by real bugs which are fixed in 14.04.2 than will be affected by hypothetical bugs nobody seems to have noticed yet:
https://wiki.ubuntu.com/TrustyTahr/ReleaseNotes/ChangeSummar...
I agree with those saying this is completely stupid. In corporate environments, there are a lot of Ubuntu LTS, RHEL, and CentOS desktops. They won't be upgraded to >= 3.16 for years.
Edit: oh, wait, this starts in the next version.
There's a feature of the kernel that Chromium wants to use. That's a perfectly good reason to upgrade.
User software should dictate kernel versions.
seccomp was introduced in the Linux kernel because the Chromium developers wanted a good way to reduce the harm Chromium browser processes could do if they got compromised.
Chromium is pretty much the only user of seccomp right now.
(although for example Docker also has support for it, but I don't think it's widely used)
Now Kees Cook who implemented TSYNC for seccomp in the Linux kernel works for Google. The kernel commit even lists his @chromium.org email address.
Consider a workplace setting where someone may have other software which is much more conservative about using new features. A newer kernel may cause that software to stop working entirely; upgrading a kernel rarely introduces just the feature Google Chrome wants to use. You could tell those people to just use a different browser, but there are a lot of workplace users - is this new feature right now really worth losing those users?
For all the effort the Linux community has put into keeping Linux distributions secure and making them easier to use, now Google is saying Linux users have to either know how to update their kernel outside the provided package manager to use Chrome, or use whatever older version of Chrome still supports their kernel. This is going to frustrate or alienate most new Linux users as well as veteran users who like stability and package management. Is using this new feature right now really worth losing those users as well?
Chrome is arguably the most popular browser on the Internet. They ought to be more conservative about things like this; the right way to handle a new kernel feature is to either delay its use until supported by the majority of your users, or to detect it at runtime and use it if available. IMO, what they have done here is lazy and arrogant. A very poor decision.
First it was the won't fix VPN + countless other Android bugs, then repeatedly breaking Canvas in Chrome (why do I care about this? well Chrome auto-updates for 99% of users, so when they break canvas they're breaking sites) and not least the numerous platforms and products they introduced and then dropped despite vibrant & loyal user bases.
Linux 3.16 is 7 months old. The attitude of the Chrome team is extremely obnoxious. Some distributions support versions 10 years and beyond and there are plenty of reasonable reasons to want to use them as such. Requiring a 7 month old kernel is absurd.
I keep getting the feeling that Chrome isn't the browser for me.
If the distro is upgrading the browser package I think that may break the API/ABI stability that a long time support distribution should provide, so I can't see why this is a Chrome problem.
Also it sounds wrong that a web browser depends on the kernel version; so I'm with you that there are other browsers supporting Linux.
When you combine the fact that not even Ubuntu developers really support the LTS (9/10 of the developers flock to the newest release, and the bug reports towards LTS get generally ignored - the LTS tagged bug queues are graveyards), I can not see the whole point of making LTS version available in the first place.
That being said, 7 months is a bit small window of support for a specific platform component. I would understand not supporting 1-2 years old kernel/glibc/whatever, but 7 months is really not enough.
Chrome is still supported on Windows XP, so is FF, on Windows vendors not only do not seem to drop support but actually extend beyond MSFT's requirements.
While canonical is surely not MSFT but when you make an LTS program you either have to get 3rd party vendors on board, or manage and update the packages yourself to make sure they will be compatible with your own software, or to make updates to your LTS distro to keep it compatible with the newer packages.
While the OS is quite important, it's usually not the piece of software neither end users nor corporate users care about, for them it's just a platform to run the software they actually use. And if the platform loses support for a major piece of software after less than a year you can't blame anyone besides the maintainer of that platform.
The Linux community really needs to get their shit together, with every step forward these past few years they've seen to be taking 2 steps back. With PAAS becoming more and more popular, it really should only take Apple to release a general server OS (no OSX Server doesn't count) to push it back completely into the realm of BBS hobbyists these days.
The result of your argument is basically returning to dark ages of having to support old broken IE6 because the vendor couldn't be arsed to support an older platform. When did dropping support for a less than a year old product become something to be applauded?
I know this puts distributions in a bad situation, but unless the users can force the upstream project to be more user friendly, I think the only option is to switch to a different software (hint: Firefox).
You seem to think I endorse Chrome team's behaviour on this, and I don't. That doesn't change reality though.
I often see versions of this argument more or less opposing complaints against open source products. It has some merit, depending on circumstances. Circumstances are important.
Chrome isn't some guy's spare time project, or something done by a team of corporate and personal volunteers. Chrome is a product. Looking for Google's valuation comes up with an analysis that it will likely be the first or second company to be valued at a trillion dollars. Chrome enjoys nearly a 50% browser market share. Google has one of the strongest hands in shaping technology today, and it seems they aren't always making the best decisions; not that one would expect such a large company to always make the best decisions (or that there would be a consensus on _what_ is the best decision).
I've never paid for anything made by Google, but I am a customer regardless; so are you. Money hasn't changed hands but they have certainly profited from the relationship, and so have I.
---
"If you don't like it, submit a pull request" -- that response always rubs me the wrong way. To be clear, some of the loudest complainers about open source projects are entirely too entitled, but those that aren't do have a point sometimes. I believe that whether you are a guy with a hobby making $0 or a company valued at $3.8 * 10^11, you owe it to yourself and your users to maintain a certain level of quality if you create a popular product. More of a personal philosophy than the expectation of a legal obligation of course, but I think just as valid.
I always have mixed feelings when Google has a project with two versions: the open source one and the binary only based on that one. Chrome and Chromium are not quite the same thing after all.
I don't know for sure, but for Google Chrome may be the product and Chromium just a convenient way to make it happen.
Second, you cut out the rest of the comment:
"If that causes great hardship for anyone and you want to do the work to figure out what's going on submit patches to fix it, I can provide pointers for where to start looking and code reviews for the patch."
Since that comment has anyone done anything other than updating their kernel and/or complaining? If not, why would the Chromium team think this issue was important?
I agree that it's the Chrome team's prerogative to decide that supporting those kernels is unimportant.
For example RHEL/CentOS 7 which was released just last year with at least a 10 year support ahead of it is now obsolete according to them because it has a kernel version 3.10...
Not that many people are on desktop versions of those OSes, and those that are will not use Chrome (for example, US govt loves them some Desktop RHEL systems, but Chrome is usually not allowed there anyway), but just highlighting how still seems a bit crazy.
Google's being aggressive about taking advantage of a kernel-level security feature that they developed to solve a real problem. This seems like a good thing overall.
OTOH, when you make a break-the-world release every six weeks, you can expect lots of breakage when dealing with the rest of the world. From what I can tell, Google pushed a feature they wanted into Linux, then didn't bother to think about backward compatibility. This would be fine if Chrome weren't force-updating software -- people on older kernels could just wait and update when they updated their kernels -- but alas that is not the case.
If that's not enough to "generate a ton of good will" then doing one more minor thing won't change anything.
If they start giving out hundred dollar bills, you'll be complaining that it's not two hundred dollar bills.
This is not so minor.
If they start handing out hundred dollar bills I would think they'd gone nuts.
Yes, it is a good thing for the people who 1) use desktop linux and 2) use a rolling distribution or a distribution that was released within the last year. I suspect that might be a rather small percentage of the Desktop users in the world.
It simply means that people who 1) use a desktop Linux and 2) use a stable distribution can't run Chrome (which I imagine solves the security problem in another way). This fraction of a fraction may be larger (corporate desktops, e.g. RHEL, CentOS, Scientific Linux, Debian stable, Ubuntu LTS &c)
If web pages were content to showing web sites, the vast majority of the motivation for heavy sandboxing, Chrome style, would be irrelevant.
Chromium's use of seccomp-bpf is solely to crack down on kernel vulnerabilities, as it's an additional layer over a sandbox already providing all of the security boundaries they need. It moves things along pretty far, but there are still at least 1-2 holes found every year.
It's definitely an improvement over browsers like Firefox where there are at least 3-4 unmitigated remote code execution vulnerabilities fixed every six week cycle...
http://www.cvedetails.com/product/9900/Microsoft-Internet-Ex...
http://www.cvedetails.com/product/15031/Google-Chrome.html?v...
Note that seccomp is a layer on top of the layer-1 sandbox implementation based on a chroot and namespaces. There is no equivalent to the layer-2 sandbox used to protect against kernel vulnerabilities on other platforms.
But do you know who comex is?
I didn't, and it was not that easy to find out, but I was curious. He is Nicholas Allegra and he is known for jailbreaking the iPhone. See http://www.androidbeat.com/2013/04/google-comex/ and http://www.forbes.com/sites/andygreenberg/2011/08/01/meet-co.... He went on to work for Apple and now for Google, apparently on the Chome or Chrome OS teams.Chrome is one of the first products on linux with a large amount of users to support a reasonably strong sandbox. But that's not what pioneering means.
Of course, seccomp-nonbpf, selinux and quite a few other mechanisms have been around for a longer while. In non-Linux kernels in fact, there are FAR more secure mechanisms (but also, they don't run Linux binaries..)
You're quite confused. SELinux, AppArmor, SMACK, etc. do not overlap with seccomp-bpf which exists to protect the kernel itself. Chromium has a working sandbox with or without seccomp-bpf based on a chroot, namespaces and IPC protocols. It needs seccomp to mitigate kernel vulnerabilities, which are not at all uncommon.
So no, I'm not confused :)
As for the other points:
* "seccomp-nonbpf" is a vastly more limited mechanism than seccomp-bfp, and inappropriate for Chrome use-case. http://en.wikipedia.org/wiki/Seccomp. seccomp-bfp is pioneering in Linux kernel space, even if, ironically, the team might not have wanted to spend their time there. See below.
* Popular consumer distribution of Linux doesn't have SELinux enabled by default. https://wiki.ubuntu.com/SELinux. "SELinux can be enabled in Ubuntu by installing the "selinux" meta-package". In my bubble we everyone uses Ubuntu on desktop, apologies to other distributions vying for the title of "popular consumer Linux distribution".
* Not sure why we are talking about security mechanisms on non-Linux kernels. Chrome is a browser, the team's job is not to innovate in the kernel space. http://www.chromium.org/developers/design-documents/sandbox. "Do not re-invent the wheel: It is tempting to extend the OS kernel with a better security model. Don't.".
I'm not sure why I'm even replying sometimes.
I assume they'll either drop support altogether or will support RHEL 7 until RHEL 8 is shipped like they did with RHEL 6.
They don't care that most people don't jump ship and upgrade RHEL as soon as a new release exists.
On Sat, Mar 07, 2015 at 07:17:13PM +0200, Georgi Naplatanov wrote:
> On 03/07/2015 06:38 PM, Ben Hutchings wrote:
> > On Sat, 2015-03-07 at 16:09 +0100, D. F. wrote:
> >> Hello, Julien Tinnes from google says that next releases of
> >> chromium will drops support for kernels without TSYNC
> >> ubuntu 14.10 already has been patched
> >> Can I to expect that debian 8/jessie will have support for
> >> TSYNC?
> > Sounds like another good reason to not use Google spyware.
> Google Chrome for Linux is the only possibility to use latest version
> of Adobe flash player for Linux as far as I know.
another good reason not to use it.
-- maks
I guess this is why Gentoo is still my distro of choice after all these years.
That's been said, I find question about TSYNC completely appropriate, and its support to be expected, but answer about "Google spyware" was funny and enjoyable anyway. So, yeah, maybe childish, but not "exceedingly childish".
It's unprofessional by definition because it is so clear that the person responding does not consider this their profession.
Their goal is not to satisfy everyone who comes to their mailing list, that would be insanity.
Instead of considering it in a balanced way and producing a polite & considered response, the response was idealistic rhetoric. For better or worse, I think that does qualify the attitude of response as "unprofessional", as stingraycharles pointed out.
As a non-native english speaker it is quite difficult to find an enough but not too much snippy/snarky response (had e.g. to lookup these words)).
English is a second language to me, and I cannot imagine this being true.
On another note - does chrome/chromium build on freebsd? Is there an equivalent api there?
I certainly sympathize with the chrome/chormium team: they're of course free to abandon users on old kernels/os'. It is a bit odd to demand a new kernel (newer than most Android installs uses) for a browser. We've come to learn to live with not having stable and secure browsers (choose either - usually choosing the updated, secure browser makes more sense). It's a bit more hairy when you need a new kernel. But I suppose newer hardware can just run Chrome (or chrome os) in a kvm vm anyway...
But the problem for debian is that Jessie is frozen, they can't make any changes now. They don't want an exception for this.
I assume they're because it's a dumb question, but still. This is an excellent example of an unwelcoming / hostile culture.
It appears a patch needs to be cherry-picked back; a pretty common task for people that maintain older kernels. It's very common to backport patches to drivers you care about (because new kernel versions always introduce bugs in your obscure hardware, you only backport stuff that doesn't already work). There is even a system for doing it in an automated manner: http://drvbp1.linux-foundation.org/~mcgrof/rel-html/backport...
https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1379020 http://lists.infradead.org/pipermail/linux-arm-kernel/2014-J...
seccomp ("secure computing") is an application sandboxing mechanism in the Linux kernel (since 2.6.12, 2005-03-08). seccomp allows a process to make a one-way transition into a "secure" state where it cannot make any system calls except exit(), sigreturn(), read() and write() to already-open file descriptors.
http://en.wikipedia.org/wiki/Seccomp
Chrome uses seccomp to sandbox rendering subprocesses and the Adobe Flash Player.
Threads on Linux are very close to an equivalent of "separate process" except they share memory. Up to until seccomp tsync, only the thread calling seccomp and it's children would get the seccomp filter.
If you wanted to have seccomp in previously started threads you'd have to handle a broadcast in userspace and ensure all threads actually apply the same seccomp filter.
I bet they ran into issues with that (it's easy to forget a thread or have a new thread someone elses coded that will fail to apply the filter).
tsync is kernel side and explicitly fails/succeeds so its both simpler and safer.
Back in September, there was a plan for requiring at least GCC 4.9 for building Chromium, which made building new releases for Debian wheezy in a pure Debian wheezy environment impossible. [0]
Debian lacks the manpower of RedHat for backporting and supporting new software (which is GCC 4.9 for this case), so Stable Release Team and Security Team are not the most liberal teams when it comes to approving new packages into a stable release, and as a result, Chromium is not supported in Wheezy as of last month. [1]
[0] https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=763278
[1] https://lists.debian.org/debian-security-announce/2015/msg00...
One day it's going to be "use Google's fork of the kernel".
Of course, Firefox and others work fine on "older" kernels.
I dont understand why you need to change the seccomp filter after creation though.
Look at the terribly old / EOL software in RHEL4 that is on "extended support" until 2017:
Java 1.4
SVN 1.1
Apache 2.0
Stunnel 4.0.5
Python 2.3
Glibc 2.3.4
Firefox 1.0
edit: I stumbled upon some ELSA advisories a few weeks ago where additional security updates needed to be released for Apache because the CVE for which they intended to backport a fix was not adequately patched.That is terrifying. There's a reason why upstream doesn't release fixes for those old releases.
Lots of speculation though - there's no official announcement, as far as I'm aware, and the OP on the mailing list did not identify as a Google employee.
Maybe TSYNC can be backported to 3.13 (I'm unsure about who has to do it) or Chromium can be compiled without TSYNC (distro's choice). If nothing happens this is going to cost Google some users but obviously it's their browser and their choice of how to implement it and where it can run.
Given that a lot of handsets run ridiculously old Kernels, I assume that this feature will not be usable for the next few generations of handsets (or will have to be backported, obviously).
[1]: http://www.chromium.org/chromium-os/developer-guide
Kinda surprising... but not really.