Linux Kernel: Multiple DoS and permission vulnerabilities — GLSA 200407-16

Multiple permission vulnerabilities have been found in the Linux kernel, allowing an attacker to change the group IDs of files mounted on a remote filesystem (CAN-2004-0497), as well as an issue in 2.6 series kernels which allows /proc permissions to be bypassed. A context sharing vulnerability in vserver-sources is also handled by this advisory as well as CAN-2004-0447, CAN-2004-0496 and CAN-2004-0565. Patched, or updated versions of these kernels have been released and details are included along with this advisory.

Affected packages

sys-kernel/aa-sources on all architectures
Affected versions < 2.6.5-r5
Unaffected versions revision >= 2.4.23-r2
>= 2.6.5-r5
sys-kernel/alpha-sources on all architectures
Affected versions < 2.4.21-r9
Unaffected versions >= 2.4.21-r9
sys-kernel/ck-sources on all architectures
Affected versions < 2.6.7-r5
Unaffected versions revision >= 2.4.26-r1
>= 2.6.7-r5
sys-kernel/compaq-sources on all architectures
Affected versions < 2.4.9.32.7-r8
Unaffected versions >= 2.4.9.32.7-r8
sys-kernel/development-sources on all architectures
Affected versions < 2.6.8_rc1
Unaffected versions >= 2.6.8_rc1
sys-kernel/gentoo-dev-sources on all architectures
Affected versions < 2.6.7-r8
Unaffected versions >= 2.6.7-r8
sys-kernel/gentoo-sources on all architectures
Affected versions < 2.4.26-r5
Unaffected versions revision >= 2.4.19-r18
revision >= 2.4.20-r21
revision >= 2.4.22-r13
revision >= 2.4.25-r6
>= 2.4.26-r5
sys-kernel/grsec-sources on all architectures
Affected versions < 2.4.26.2.0-r6
Unaffected versions >= 2.4.26.2.0-r6
sys-kernel/gs-sources on all architectures
Affected versions < 2.4.25_pre7-r8
Unaffected versions >= 2.4.25_pre7-r8
sys-kernel/hardened-dev-sources on all architectures
Affected versions < 2.6.7-r2
Unaffected versions >= 2.6.7-r2
sys-kernel/hardened-sources on all architectures
Affected versions < 2.4.26-r3
Unaffected versions >= 2.4.26-r3
sys-kernel/hppa-dev-sources on all architectures
Affected versions < 2.6.7_p1-r2
Unaffected versions >= 2.6.7_p1-r2
sys-kernel/hppa-sources on all architectures
Affected versions < 2.4.26_p6-r1
Unaffected versions >= 2.4.26_p6-r1
sys-kernel/ia64-sources on all architectures
Affected versions < 2.4.24-r7
Unaffected versions >= 2.4.24-r7
sys-kernel/mm-sources on all architectures
Affected versions < 2.6.7-r6
Unaffected versions >= 2.6.7-r6
sys-kernel/openmosix-sources on all architectures
Affected versions < 2.4.22-r11
Unaffected versions >= 2.4.22-r11
sys-kernel/pac-sources on all architectures
Affected versions < 2.4.23-r9
Unaffected versions >= 2.4.23-r9
sys-kernel/planet-ccrma-sources on all architectures
Affected versions < 2.4.21-r11
Unaffected versions >= 2.4.21-r11
sys-kernel/pegasos-dev-sources on all architectures
Affected versions < 2.6.7-r2
Unaffected versions >= 2.6.7-r2
sys-kernel/pegasos-sources on all architectures
Affected versions < 2.4.26-r3
Unaffected versions >= 2.4.26-r3
sys-kernel/ppc-sources on all architectures
Affected versions < 2.4.26-r3
Unaffected versions >= 2.4.26-r3
sys-kernel/rsbac-sources on all architectures
Affected versions < 2.4.26-r3
Unaffected versions >= 2.4.26-r3
sys-kernel/rsbac-dev-sources on all architectures
Affected versions < 2.6.7-r2
Unaffected versions >= 2.6.7-r2
sys-kernel/selinux-sources on all architectures
Affected versions < 2.4.26-r2
Unaffected versions >= 2.4.26-r2
sys-kernel/sparc-sources on all architectures
Affected versions < 2.4.26-r3
Unaffected versions >= 2.4.26-r3
sys-kernel/uclinux-sources on all architectures
Affected versions < 2.6.7_p0-r2
Unaffected versions revision >= 2.4.26_p0-r3
>= 2.6.7_p0-r2
sys-kernel/usermode-sources on all architectures
Affected versions < 2.6.6-r4
Unaffected versions revision >= 2.4.24-r6
revision >= 2.4.26-r3
>= 2.6.6-r4
sys-kernel/vserver-sources on all architectures
Affected versions < 2.4.26.1.28-r1
>= 2.4
< 2.0
Unaffected versions >= 2.0
sys-kernel/win4lin-sources on all architectures
Affected versions < 2.6.7-r2
Unaffected versions revision >= 2.4.26-r3
>= 2.6.7-r2
sys-kernel/wolk-sources on all architectures
Affected versions < 4.14-r4
Unaffected versions revision >= 4.9-r10
revision >= 4.11-r7
>= 4.14-r4
sys-kernel/xbox-sources on all architectures
Affected versions < 2.6.7-r2
Unaffected versions revision >= 2.4.26-r3
>= 2.6.7-r2
sys-kernel/mips-sources on all architectures
Affected versions < 2.4.27
Unaffected versions >= 2.4.27
sys-kernel/vanilla-sources on all architectures
Affected versions <= 2.4.26
Unaffected versions >= 2.4.27

Background

The Linux kernel is responsible for managing the core aspects of a GNU/Linux system, providing an interface for core system applications as well as providing the essential structure and capability to access hardware that is needed for a running system.

Description

The Linux kernel allows a local attacker to mount a remote file system on a vulnerable Linux host and modify files' group IDs. On 2.4 series kernels this vulnerability only affects shared NFS file systems. This vulnerability has been assigned CAN-2004-0497 by the Common Vulnerabilities and Exposures project.

Also, a flaw in the handling of /proc attributes has been found in 2.6 series kernels; allowing the unauthorized modification of /proc entries, especially those which rely solely on file permissions for security to vital kernel parameters.

An issue specific to the VServer Linux sources has been found, by which /proc related changes in one virtual context are applied to other contexts as well, including the host system.

CAN-2004-0447 resolves a local DoS vulnerability on IA64 platforms which can cause unknown behaviour and CAN-2004-0565 resolves a floating point information leak on IA64 platforms by which registers of other processes can be read by a local user.

Finally, CAN-2004-0496 addresses some more unknown vulnerabilities in 2.6 series Linux kernels older than 2.6.7 which were found by the Sparse source code checking tool.

Impact

Bad Group IDs can possibly cause a Denial of Service on parts of a host if the changed files normally require a special GID to properly operate. By exploiting this vulnerability, users in the original file group would also be blocked from accessing the changed files.

The /proc attribute vulnerability allows local users with previously no permissions to certain /proc entries to exploit the vulnerability and then gain read, write and execute access to entries.

These new privileges can be used to cause unknown behaviour ranging from reduced system performance to a Denial of Service by manipulating various kernel options which are usually reserved for the superuser. This flaw might also be used for opening restrictions set through /proc entries, allowing further attacks to take place through another possibly unexpected attack vector.

The VServer issue can also be used to induce similar unexpected behaviour to other VServer contexts, including the host. By successful exploitation, a Denial of Service for other contexts can be caused allowing only root to read certain /proc entries. Such a change would also be replicated to other contexts, forbidding normal users on those contexts to read /proc entries which could contain details needed by daemons running as a non-root user, for example.

Additionally, this vulnerability allows an attacker to read information from another context, possibly hosting a different server, gaining critical information such as what processes are running. This may be used for furthering the exploitation of either context.

CAN-2004-0447 and CAN-2004-0496 permit various local unknown Denial of Service vulnerabilities with unknown impacts - these vulnerabilities can be used to possibly elevate privileges or access reserved kernel memory which can be used for further exploitation of the system.

CAN-2004-0565 allows FPU register values of other processes to be read by a local user setting the MFH bit during a floating point operation - since no check was in place to ensure that the FPH bit was owned by the requesting process, but only an MFH bit check, an attacker can simply set the MFH bit and access FPU registers of processes running as other users, possibly those running as root.

Workaround

2.4 users may not be affected by CAN-2004-0497 if they do not use remote network filesystems and do not have support for any such filesystems in their kernel configuration. All 2.6 users are affected by the /proc attribute issue and the only known workaround is to disable /proc support. The VServer flaw applies only to vserver-sources, and no workaround is currently known for the issue. There is no known fix to CAN-2004-0447, CAN-2004-0496 or CAN-2004-0565 other than to upgrade the kernel to a patched version.

As a result, all users affected by any of these vulnerabilities should upgrade their kernels to ensure the integrity of their systems.

Resolution

Users are encouraged to upgrade to the latest available sources for their system:

 # emerge sync
 # emerge -pv your-favorite-sources
 # emerge your-favorite-sources
 
 # # Follow usual procedure for compiling and installing a kernel.
 # # If you use genkernel, run genkernel as you would do normally.

References

Release date
July 22, 2004

Latest revision
March 27, 2011: 03

Severity
high

Exploitable
local

Bugzilla entries