Serious Security Bugs Found In Android Kernel
geek4 writes with this excerpt from eWeek Europe: "An analysis of Google Android Froyo's open source kernel has uncovered 88 critical flaws that could expose users' personal information. An analysis of the kernel used in Google's Android smartphone software has turned up 88 high-risk security flaws that could be used to expose users' personal information, security firm Coverity said in a report published on Tuesday. The results, published in the 2010 edition of the Coverity Scan Open Source Integrity Report, are based on an analysis of the Froyo kernel used in HTC's Droid Incredible handset. ... While Android implementations vary from device to device, Coverity said the same flaws were likely to exist in other handsets as well. Coverity uncovered a total of 359 bugs, about one-quarter of which were classified as high-risk."
88 Critical flaws on the wall... 88 critical flaws... You take one down, pass it around...
An analysis of Google Android Froyo's open source kernel has uncovered 88 critical flaws that could expose users' personal information. An analysis of the kernel used in Google's Android smartphone software has turned up 88 high-risk security flaws that could be used to expose users' personal information
Does it also cause words in sentences to duplicate? Does it also cause sentences to duplicate? Also, was this submission done on an Android phone?
today is spelling optional day.
Probably not many. Android has a rather large application framework running on top of Linux. The flaws are most likely in it, and most likely allow you to get access to data that you don't have permission to (permissions are implemented in the same code layer). When people talk about android, android isn't really an OS- it's more like Gnome or KDE with a basic permission system hacked on (and a totally Android only API).
I still have more fans than freaks. WTF is wrong with you people?
Apparently no word on whether these are flaws in the vanilla kernel which Google has inherited, or flaws in the code that Google wrote.
I don't think Apple was going for domination of the smartphone. Apple wants to sell lots of expensive smartphones, and they are not going to sell 100m of those year to year.
Windows 7 Phones have no security vulnerabilities at all. Not even attackers have worked out how to run code on them...
I am TheRaven on Soylent News
Those "critical" and "serious" label are largely meaningless; Coverity allows you to configure classes of "problems" as being one of several different severity. It is what the sysadmin of Coverity wants it to be. If so desired, buffer overflow could be configured to the severity of "minor."
ELOI, ELOI, LAMA SABACHTHANI!?
What we don't use surely?
we use it at .
Coverity is the commercial offshoot of the old Stanford Checker that found something like 2500 critical bugs in the linux kernel back when it (the checker) was just a grad school project. the bugs got fixed very quickly and linux was better for it.
that said, Coverity's definition of serious or critical is not necessarily what most developers could call critical (haven't read the bug list, but from personal experience.....)
in any case, this is a win. these bugs are now known, and google/community will fix them within days if they haven't already been fixed (I hope Coverity had the decency to inform google prior to their press release)
The difference between Theory and Practice is greater in Practice than in Theory.
How much are these worth in bug bounty money?
To Google or to exploit writers? I'm sure they're both offering bounties but I don't think they pay the same.
Coverity uncovered a total of 359 bugs, about one-quarter of which were classified as high-risk.
Based on my experience using Coverity's tools, more than half are actually false positives and less than half of what's left are really as serious as rated.
They are outed, and so get fixed even faster.
Well, sort of. Even if they get fixed quickly by developers, the time it takes them to actually get fixes to consumer devices is huge. That deployment process relies on device manufacturers who often customize the OS a bit per-device and cell carriers who have to push out the updates. For them it's just an expense/loss of resources, so unless it's something really serious they don't even seem to put much effort into it.
Odd, I don't know why you're picking on me, but I assume "Android Kernel" is marketing-speak for "Linux", in which I've reported found and fixes dozens of flaws over the years.
As you're so interested, here are some from the last month or two that you can take a look at.
CVE-2010-3080, A use-after-free in snd_seq_oss_open
CVE-2010-2960, A to-userspace dereference in keyctl_session_to_parent.
CVE-2010-2954, Kernel panic and to-userspace dereference in AF_IRDA sockets.
CVE-2010-3067, Various problems with aio (things like aio_submit())
The coverity results I've seen in the past are generally very low quality with a high density of chaff. I haven't seen the report they're talking about, but would be surprised if there were any noteworthy findings with any significant security impact. The only report I've seen them publish that had any convincing vulnerabilities was in 2006, where they found a verifiable privilege escalation in XFree86 (due to a pretty horrendous typo).
I'm a little saddened that you so readily associate me with Windows security, where as I consider myself primarily a Linux security developer, but I guess I'm flattered that where I spend my time is so important to you.
(perhaps a little creepy, though).
ex$$
If you're havin' 'droid problems i feel bad for you son,
I got 88 problems but a bug ain't one
You could like mention that this is projected to be the least number of vulnerabilities per line of code they found. Oh wait, that would require reading the article.
Android uses outdated kernels in every release. Those issues are like "Hey grab a bugfix list from the latest kernel and write a study in which you supposedly hunted down these bugs yourself".
It's like an unpatched Vista Service Pack Zero and then reporting about bugs that have already been fixed...
Here be signatures
In truth, this is a strength, not a weakness of Android - this is the "many eyes" of open source in action. No doubt the important fixes among these will be addressed pretty quickly.
The problem, however, is with the carriers who keep insisting on pushing custom firmware on their devices. With many devices never receiving any updates at all they are wide open - how long until we have massive malware issues because of this?
What I hope is that this drives some consumer backlash which forces the carriers to stop the nonsense with customizing the core of android and instead just put their skins on the topmost UI layer. They should realize quick smart that they are not and should never be in the OS business and that updates need to come out within weeks of releases from Google, not years or never.
Depends on your definition of OS. There's more than 1 definition, one of which translates to "the kernel" and another translates to "everything that comes with a computer", and a couple in between. When most technical people say OS, they mean the program that controls access to the hardware and provides system services- the kernel. By that definition Android is a framework on top of the OS. And in functionality it's far closer to a window manager than a kernel.
I still have more fans than freaks. WTF is wrong with you people?
Probably not many.
Well 88 were found in the kernel, which is a linux kernel. But who knows how many of those are in the actual linux kernel mainline.
Exposes more than, say, a very simple app (game?) that requires Full Network Access, Fine Grained Location, and access to your System Settings?
The biggest threat to personal information leaking on an Android phone are overly permissive apps, and the people who install them.
However, I've not seen any formal soundness proof of Coverity itself. As a result, Coverity may very well accept buggy programs as correct. This would certainly limit the tool's usefulness.
Oh, it definitely does. And in some sense it limits its utility, but it also is what lets it be as successful as it is.
Rice's theorem says that the ultimate goal -- determine whether a program is buggy -- is literally impossible to be guaranteed to do completely accurately. Because of this, there are three possibilities that you can take when making a tool that attempts to do that; you must pick at least one.
1. You can say a program is (or may be) buggy when it isn't.
2. You can say a program is free of bugs when it is actually buggy.
3. You can accept the possibility that your tool will run forever.
Each of these occurs in practice. A familiar example of #1 is the type system of a statically-typed language: if x has type int and y has type SomeClass, the type system will say that a program containing the expression x = y is not legal even if it is impossible for that statement to actually execute (and thus the actual failure type systems are designed to prevent can't actually happen). I'm actually having a hard time thinking of a tool that picks just #2, but I'm sure there are some out there. #3 is the hallmark of some techniques such as concolic execution and some recent work on program verification. (I'm involved in one of the last tools.)
But there are also a number of tools out there that admit the possibility of both false positives and false negatives: in other words both #1 and #2 can happen. The benefit you can get by doing that is that you can get an analysis that can find errors that are rather deeper than, say, your type system and yet it'll still scale to very large programs.
There's no one perfect analysis; there's a spectrum based on how much you value finding bugs, how much you value gaining assurance that a program is bug-free, how deep of bugs you want to find, and how large of a code base you have to run on. Saying that Coverity "limits its usefulness" based on the spot it choose in the design space is true, but slightly misleadingly so, because every program analysis limits its utility, just in different ways. IMO not having used it, Coverity found a spot which is quite useful.
This is Google, you know: a privacy flaw exposed in the kernel of their device isn't a FLAW! It's a business-enabling FEATURE..
God damn Google for stealing Apple's business practices.
Odd question.
I don't know about three days, but certainly under a week, which is completely normal in free software. Proprietary vendors generally want between six months and two years, but free software vendors and projects very rarely ask for more than a week or two delay before publication.
In fact, Linus famously tells people not to tell him about any security issue you want kept secret for more than a week, as he will just go ahead and fix it.
ex$$
A lot of people - myself included - refer to Darwin when talking about the OS, and Mac OS X when talking about all of the stuff that Apple bundles on the install CD (including Quartz, Cocoa, and so on).
Defining the OS as the kernel is problematic when you have microkernels, because the line between what is the kernel and what is userspace is blurred. With Symbian, for example, device drivers live in the kernel but they don't handle multiplexing between applications. When an application wants to access a hardware resource, it talks to a userspace server. Are these servers part of the OS?
The general working definition of an OS is the stuff that you need to boot the system and launch programs. With a UNIX-like system, this includes the init system (typically including a POSIX-compatible shell), and a set of libraries. Most importantly, it includes libc, because this is the public interface to the kernel's functionality. If you select a target when cross-compiling stuff for OS X, you select the Darwin target, not the OS X or XNU target (there isn't one), because the compiler needs to know things like the object format to use (Mach-O), the calling conventions (not defined by the kernel), and a few other things.
This is why people talk about GNU/Linux as a platform; because it's GNU libc, the GNU shell, and so on that their programs interact with. You can swap out the Linux kernel for something like a FreeBSD kernel much more easily than you can swap out the GNU stuff for BSD equivalents.
Some people use a slightly broader definition for UNIX-like systems, including everything needed for compliance with the Single UNIX Specification. Since this includes things like c99, c++, and vi, I think it's a little bit to broad, because the system can happily function without them.
I am TheRaven on Soylent News