By Jonathan Corbet
April 13, 2011
Companies operating in the handset market have different approaches to
almost everything, but they do agree on one thing: they have seen the
security problems which plague desktop systems and they want no part of
them. There is little consistency in how the goal of a higher level of
security is reached, though. Some companies go for heavy-handed central
control of all software which can be installed on the device. Android uses
sandboxing and a set of capabilities enforced by the Dalvik virtual
machine. MeeGo's approach has been based on traditional Linux access
control paired with the Smack mandatory access control module. But much
has changed in the MeeGo world, and it appears that security will be
changing too.
In early March, the project sent out a notice
regarding a number of architectural changes made after Nokia's change
of heart. With regard to security, the announcement said:
In the long-term, we will re-evaluate the direction we are taking
with MeeGo security with a new focus on *End-User Privacy*. While
we do not intend to immediately remove the security enabling
technologies we have been including in MeeGo, all security
technologies will be re-examined with this new focus in mind.
It appears that at least some of this reexamination has been done; the
results were discussed in this message from
Ryan Ware which focused mainly on the problem of untrusted third-party
applications.
The MeeGo project, it seems, is reconsidering its decision to use the Smack
access control module; a switch to SELinux may be in the works. SELinux
would mainly be charged with keeping the trusted part of the system in
line. All untrusted code would be sandboxed into its own container; each
container gets a disposable, private filesystem in the form of a Btrfs
snapshot. Through an unspecified mechanism (presumably the mandatory
access control module), these untrusted containers could be given limited
access to user data, device resources, etc.
It probably surprised nobody that Casey Schaufler, the author of Smack, was
not sold on the value of a change to SELinux. This change would, he said, add a great deal of complexity to the
system without adding any real security:
SELinux as provided in distributions today does not, for all its
trappings, complexity and assurances, enforce any security
policy. SELinux is capable of enforcing a security policy, but no
general purpose system available today provides anything more than
a general description of the experienced behavior of a small subset
of the system supplied applications.
The people who built SELinux fell into a trap that has been
claiming security developers since computers became
programmable. The availability of granularity must not be assumed
to imply that everything should be broken down into as fine a
granularity as possible. The original Flask papers talk about a
small number of well defined domains. Once the code was implemented
however the granularity gremlins swarmed in and now the reference
policy exceeds 900,000 lines. And it enforces nothing.
Ryan's response was that the existing
SELinux reference policy is not relevant because MeeGo does not plan to use
it:
At this point I want nothing to do with the Reference Policy. I
would much prefer to focus on a limited set of functionality around
privacy controls. I know that means it won't necessarily exhibit
"expected" SELinux behavior. Given the relatively limited range of
verticals we are trying to support, I believe we will be able to
get away with that.
What this means is that he is talking about creating a new SELinux policy
from the beginning. The success of such an endeavor is, to put it gently,
not entirely assured. The current reference policy has
taken many years
and a great deal of pain to reach its current state of utility; there are
very few examples of viable alternative policies out there. Undoubtedly
other policies are possible, and they need not necessarily be as complex as
the reference policy, but anybody setting out on such a project should be
under no illusions that it will be easily accomplished.
The motivation for the switch to SELinux is unclear; Ryan suggests that
manufacturers have been asking for it. He also said that manufacturers
would be able to adjust the policy for their specific needs, a statement
that Casey was not entirely ready to accept:
There are very few integrators, even in the military and
intelligence arenas, who feel sufficiently confident with their
SELinux policy skills to do any tweaking that isn't directly
targeted at disabling the SELinux controls.
Ryan acknowledged that little difficulty, but he seems determined to press
on in this direction.
The end goal of all this work is said to be preventing the exposure of
end-user data. That will not be an easy goal to achieve either, though.
Once an application gets access to a user's data, even the firmest SELinux
policy is going to have a hard time preventing the disclosure of that data
if the application is coded to do so; Ryan has acknowledged this fact. Any Android user who
pays attention
knows that even trivial applications tend to ask for combinations of
privileges (address book access and network access, for example) which
amount to giving away the store. Preventing information leakage through a
channel like that - while allowing the application to run as intended - is
not straightforward.
So it may be that the "put untrusted applications in a sandbox and limit
what they can see" model is as good as it's going to get. As Casey pointed out, applications are, for better or
worse, part of the security structure on these devices. If an application
has access to resources with security implications, the application must
implement any associated security policy. That's a discouraging conclusion
for anybody who wants to install arbitrary applications from untrusted
sources.
Comments (5 posted)
Brief items
This has not changed since I started working in security in the
days when dinosaurs roamed the earth and megabytes were only found
on disk drives. We released a Unix variant that we charged $5000
extra for because it had an unprivileged root (using POSIX
capabilities) and every customer's first questions was "How do I
become Real Root?".
--
Casey Schaufler
So here we are on the cusp of something. At long last, we're finally
approaching the critical mass necessary to replace the CA system that we've
long since grown out of. But when evaluating replacement models for the CA
system, the very first question we should ask is "who do I have to trust,
and for how long?" If the answer is "a prescribed set of people, forever"
we should probably proceed with extreme caution. I believe that if we don't
develop a solution which offers trust agility, we will inevitably find
ourselves back in the exact same place that we're currently trying to
escape from.
--
Moxie
Marlinspike on "trust agility"
It might happen that someday ICANN will create some of these TLDs. There is
even talk that they might allow people to register (at a high cost)
arbitrary TLDs like .milk or .cookies. In that case, these
currently-invalid certificates will become valid because they will suddenly
refer to usable internet names. For example, imagine if Microsoft were able
to, in the future, register the .microsoft TLD so that they could have
www.microsoft for their web site address. As the Observatory shows, an
attacker can probably get a CA to sign that name today. Such an attacker
would be able to hijack Microsoft's web site on the very minute the new
name goes live.
--
Chris
Palmer on the EFF Deeplinks blog
Comments (1 posted)
New vulnerabilities
dhcp: man-in-the-middle attack
| Package(s): | dhcp |
CVE #(s): | CVE-2011-0997
|
| Created: | April 7, 2011 |
Updated: | May 31, 2011 |
| Description: |
From the Slackware advisory:
In dhclient, check the data for some string options for reasonableness
before passing it along to the script that interfaces with the OS.
This prevents some possible attacks by a hostile DHCP server.
|
| Alerts: |
|
Comments (none posted)
ikiwiki: cross-site scripting
| Package(s): | ikiwiki |
CVE #(s): | CVE-2011-1401
|
| Created: | April 11, 2011 |
Updated: | April 22, 2011 |
| Description: |
From the Debian advisory:
Tango discovered that ikiwiki, a wiki compiler, is not validating
if the htmlscrubber plugin is enabled or not on a page when adding
alternative stylesheets to pages. This enables an attacker who is able
to upload custom stylesheets to add malicious stylesheets as an alternate
stylesheet, or replace the default stylesheet, and thus conduct
cross-site scripting attacks. |
| Alerts: |
|
Comments (none posted)
kdelibs: HTML injection
| Package(s): | kdelibs |
CVE #(s): | CVE-2011-1168
|
| Created: | April 12, 2011 |
Updated: | May 31, 2011 |
| Description: |
From the KDE advisory:
When Konqueror cannot fetch a requested URL, it renders an error page with
the given URL. If the URL contains JavaScript or HTML code, this code is
also rendered, allowing for the user to be tricked into visiting a
malicious site or providing credentials to an untrusted party. |
| Alerts: |
|
Comments (none posted)
kernel: multiple vulnerabilities
| Package(s): | kernel |
CVE #(s): | CVE-2011-0695
CVE-2011-0716
CVE-2011-1478
|
| Created: | April 8, 2011 |
Updated: | September 13, 2011 |
| Description: |
From the Red Hat advisory:
A race condition was found in the way the Linux kernel's InfiniBand
implementation set up new connections. This could allow a remote user to
cause a denial of service. (CVE-2011-0695, Important)
A flaw was found in the way the Linux Ethernet bridge implementation
handled certain IGMP (Internet Group Management Protocol) packets. A local,
unprivileged user on a system that has a network interface in an Ethernet
bridge could use this flaw to crash that system. (CVE-2011-0716, Moderate)
A NULL pointer dereference flaw was found in the Generic Receive Offload
(GRO) functionality in the Linux kernel's networking implementation. If
both GRO and promiscuous mode were enabled on an interface in a virtual LAN
(VLAN), it could result in a denial of service when a malformed VLAN frame
is received on that interface. (CVE-2011-1478, Moderate)
|
| Alerts: |
|
Comments (none posted)
Kernel: two denial of service vulnerabilities
| Package(s): | kernel |
CVE #(s): | CVE-2011-1010
CVE-2011-1090
|
| Created: | April 13, 2011 |
Updated: | September 13, 2011 |
| Description: |
A missing check in the kernel's Mac OS partition support allows an attacker to cause a kernel oops by mounting a maliciously-crafted filesystem (CVE-2011-1010).
A local user can force a kernel panic by way of access control lists on an NFSv4-mounted filesystem (CVE-2011-1090). |
| Alerts: |
|
Comments (none posted)
libvirt: denial of service
| Package(s): | libvirt |
CVE #(s): | CVE-2011-1486
|
| Created: | April 8, 2011 |
Updated: | August 4, 2011 |
| Description: |
From the openSUSE advisory:
libvirtd could mix errors from several threads leading to a crash |
| Alerts: |
|
Comments (none posted)
moonlight: multiple vulnerabilities
| Package(s): | moonlight |
CVE #(s): | CVE-2011-0989
CVE-2011-0990
CVE-2011-0991
CVE-2011-0992
|
| Created: | April 8, 2011 |
Updated: | April 19, 2011 |
| Description: |
From the openSUSE advisory:
CVE-2011-0989: modification of read-only values via
RuntimeHelpers.InitializeArray
CVE-2011-0990: buffer
overflow due to race condition in in Array.FastCopy
CVE-2011-0991: use-after-free due to DynamicMethod
resurrection
CVE-2011-0992: information leak due to
improper thread finalization
|
| Alerts: |
|
Comments (none posted)
php: symlink attack
| Package(s): | php |
CVE #(s): | CVE-2011-0441
|
| Created: | April 8, 2011 |
Updated: | May 5, 2011 |
| Description: |
From the Mandriva advisory:
It was discovered that the /etc/cron.d/php cron job for php-session
allows local users to delete arbitrary files via a symlink attack on
a directory under /var/lib/php. |
| Alerts: |
|
Comments (none posted)
php: denial of service
| Package(s): | php |
CVE #(s): | CVE-2011-1148
|
| Created: | April 8, 2011 |
Updated: | February 13, 2012 |
| Description: |
From the Pardus advisory:
CVE-2011-1148:
Use-after-free vulnerability in the substr_replace function in PHP 5.3.6
and earlier allows context-dependent attackers to cause a denial of
service (memory corruption) or possibly have unspecified other impact by
using the same variable for multiple arguments.
|
| Alerts: |
|
Comments (none posted)
python-feedparser: multiple vulnerabilities
| Package(s): | python-feedparser |
CVE #(s): | CVE-2009-5065
CVE-2011-1156
CVE-2011-1157
CVE-2011-1158
|
| Created: | April 8, 2011 |
Updated: | August 20, 2012 |
| Description: |
From the openSUSE advisory:
Various issues in python-feedparser have been fixed,
including fixes for crashes due to missing input
sanitization and a XSS vulnerability. CVE-2011-1156,
CVE-2011-1157, CVE-2011-1158 and CVE-2009-5065 have been
assigned to these issues.
|
| Alerts: |
|
Comments (none posted)
rsyslog: multiple vulnerabilities
| Package(s): | rsyslog |
CVE #(s): | CVE-2011-1488
CVE-2011-1489
CVE-2011-1490
|
| Created: | April 12, 2011 |
Updated: | April 19, 2011 |
| Description: |
From the openSUSE advisory:
rsyslog was updated to version 5.6.5 to fix a number of
memory leaks that could crash the syslog daemon
(CVE-2011-1488, CVE-2011-1489, CVE-2011-1490).
|
| Alerts: |
|
Comments (none posted)
shadow: denial of service
| Package(s): | shadow |
CVE #(s): | |
| Created: | April 11, 2011 |
Updated: | April 13, 2011 |
| Description: |
From the Slackware advisory:
Corrected a packaging error where incorrect permissions on /usr/sbin/lastlog
and /usr/sbin/faillog allow any user to set login failure limits on any
other user (including root), potentially leading to a denial of service.
Thanks to pyllyukko for discovering and reporting this vulnerability.
|
| Alerts: |
|
Comments (none posted)
spice-xpi: multiple vulnerabilities
| Package(s): | spice-xpi |
CVE #(s): | CVE-2011-0012
CVE-2011-1179
|
| Created: | April 8, 2011 |
Updated: | April 15, 2011 |
| Description: |
From the Red Hat advisory:
An uninitialized pointer use flaw was found in the SPICE Firefox plug-in.
If a user were tricked into visiting a malicious web page with Firefox
while the SPICE plug-in was enabled, it could cause Firefox to crash or,
possibly, execute arbitrary code with the privileges of the user running
Firefox. (CVE-2011-1179)
It was found that the SPICE Firefox plug-in used a predictable name for one
of its log files. A local attacker could use this flaw to conduct a
symbolic link attack, allowing them to overwrite arbitrary files accessible
to the user running Firefox. (CVE-2011-0012)
|
| Alerts: |
|
Comments (none posted)
tmux: privilege escalation
| Package(s): | tmux |
CVE #(s): | CVE-2011-1496
|
| Created: | April 8, 2011 |
Updated: | April 19, 2011 |
| Description: |
From the Debian advisory:
Daniel Danner discovered that tmux, a terminal multiplexer, is not
properly dropping group privileges. Due to a patch introduced by Debian,
when invoked with the -S option, tmux is not dropping permissions obtained
through its setgid installation.
|
| Alerts: |
|
Comments (none posted)
vlc: arbitrary code execution
| Package(s): | vlc |
CVE #(s): | CVE-2010-3275
CVE-2010-3276
|
| Created: | April 7, 2011 |
Updated: | April 13, 2011 |
| Description: |
From the CVE entries:
libdirectx_plugin.dll in VideoLAN VLC Media Player before 1.1.8 allows remote attackers to execute arbitrary code via a crafted width in an AMV file, related to a "dangling pointer vulnerability." (CVE-2010-3275)
libdirectx_plugin.dll in VideoLAN VLC Media Player before 1.1.8 allows remote attackers to execute arbitrary code via a crafted width in an NSV file. (CVE-2010-3276) |
| Alerts: |
|
Comments (none posted)
vlc: arbitrary code execution
| Package(s): | vlc |
CVE #(s): | |
| Created: | April 12, 2011 |
Updated: | April 13, 2011 |
| Description: |
From the Debian advisory:
Aliz Hammond discovered that the MP4 decoder plugin of vlc, a multimedia
player and streamer, is vulnerable to a heap-based buffer overflow.
This has been introduced by a wrong data type being used for a size
calculation. An attacker could use this flaw to trick a victim into
opening a specially crafted MP4 file and possibly execute arbitrary code
or crash the media player.
|
| Alerts: |
|
Comments (none posted)
Page editor: Jake Edge
Next page: Kernel development>>