CU-2.6.18-028stab057.2

Article ID: 5519 
Last Review: Nov,25 2008
Author: Roman Kagan
Last updated by: system APPLIES TO:
  • Parallels Virtuozzo Containers for Linux

Resolution

--------------------------------------------------------------------------------
 Synopsis:          New Parallels Virtuozzo Containers 4.0 kernel provides
                    security updates, driver updates, and some other important
                    fixes.
 Issue date:        2008-07-28
 Product:           Parallels Virtuozzo Containers 4.0
 Keywords:          security updates, driver updates, stability fixes
 --------------------------------------------------------------------------------
 
 This document provides information on the new Virtuozzo Containers 4.0 kernel,
 version 2.6.18-028stab057.2.
 
 (c) Parallels, 2008. All rights reserved.
 
 --------------------------------------------------------------------------------
 
 TABLE OF CONTENTS
 
 1. About This Release
 2. Updates Description
 3. Bugs Fixed
 4. Obtaining New Kernel
 5. Installing New Kernel
 6. Required RPMs
 7. Reference List
 
 --------------------------------------------------------------------------------
 
 1. ABOUT THIS RELEASE
 
 The current update for the Virtuozzo Containers 4.0 kernel provides a new kernel
 based on the Red Hat 5 kernel (2.6.18-92.1.1.el5). The updated kernel includes a
 number of security updates, driver updates, and important stability fixes.
 
 --------------------------------------------------------------------------------
 
 2. UPDATES DESCRIPTION
 
 The updated Virtuozzo Containers 4.0 kernel includes fixes for the following
 security vulnerabilities which were fixed in 2.6.18-53.1.21.el5 -
 2.6.18-92.1.1.el5 Red Hat kernels:
 
   - Race condition in the ptrace and utrace support in the Linux kernel allowed
     local users to cause a denial of service (kernel crash) via a long series of
     PTRACE_ATTACH ptrace calls to another user's process.
     (CVE-2008-2365, Important)
 
   - On AMD64 architectures, the possibility of a kernel crash was discovered by
     testing the Linux kernel process-trace ability. This could allow a local
     unprivileged user to cause a denial of service (kernel crash).
     (CVE-2008-1615, Important)
 
   - On 64-bit architectures, the possibility of a timer-expiration value
     overflow was found in the Linux kernel high-resolution timers functionality,
     hrtimer. This could allow a local unprivileged user to set a large interval
     value, forcing the timer expiry value to become negative, causing a denial
     of service (kernel hang). (CVE-2007-6712, Important)
 
   - The possibility of a kernel crash was found in the Linux kernel IPsec
     protocol implementation, due to an improper handling of fragmented ESP
     packets. When an attacker controlling an intermediate router fragmented
     these packets into very small pieces, it would cause a kernel crash on the
     receiving node during the packets reassembly. (CVE-2007-6282, Important)
 
   - A potential denial of service attack was discovered in the Linux kernel PWC
     USB video driver. A local unprivileged user could use this flaw to bring the
     kernel USB subsystem into the busy-waiting state, causing a denial of
     service. (CVE-2007-5093, Low)
 
 
 The updated Virtuozzo Containers 4.0 kernel includes fixes for the following
 issues:
 
   - [ia64]: Suspending a Container could fail due to an incorrect handling of
     the execve() error code on the ia64 architecture.
 
   - [CPT]: An online migration could fail if a process inside a Container being
     migrated used inotify events on a symlink. The online migration of such a
     Container could terminate numerous processes on the source Node (by means of
     the SIGTERM signal) and fail with the following message:
     "CPT ERR: ffff81004a07a000,1024 :rst_inotify: -22".
 
   - [CPT]: Requests for opening a socket could be restored incorrectly during
     the online migration.
 
   - [CPT]: UDP sockets could be bound to a wrong port after the online
     migration.
 
   - [CPT]: A kernel crash could happen during an online migration if the
     Container being migrated contained a process that had a big file (>2Gb)
     opened for write only and that file had been already deleted from the
     filesystem.
 
   - The CPU time could be distributed unfairly (not according to the CPUUNITS
     parameters) in case the Hardware Node ran a few Containers only.
 
   - Modern ccNUMA AMD servers could run with degraded performance due to
     architecture-specific latencies.
 
   - The modification time of memory mapped files was not updated in time, which
     could lead to skipping such files during an incremental backup. This issue
     concerned particularly the Containers running the IBM DB2 software.
 
   - The xinetd service failed to start inside a SLES-based Container due to the
     inability to check the status of a /proc/
/exe entry for a zombie
     process. The failure was accompanied with the following message:
     "Starting INET services. (xinetd)startproc: cannot stat /proc/1432/exe:
      Permission denied                                                  failed".
 
   - An application could fail to allocate memory due to an incorrect heap rlimit
     calculation in case the randomize_va_space sysctl was enabled.
 
   - [ppc64]: A kernel crash could occur on a Container start due to a missed
     page table entry memory allocation check.
 
   - The /proc/user_beancounters permissions were shown incorrectly as
     "r--r--r--" for a file that was readable by the root user only.
 
   - The sys.ipv4.conf.default sysctl did not have any affect inside a Container.
 
   - A kernel crash could occur if a Container was started before the conntrack
     modules were loaded and 'iptstate' was executed inside the Container.
 
   - /proc/stat reported the non-virtualized btime (boot time), which sometimes
     confused the tools that used that value to calculate process times.
 
   - Chkrootkit produced false alerts about "hidden" processes inside a
     Container.
 
   - The vzlist utility did not work in case the venet module was not loaded.
 
   - /var/log/cron inside a Container contained the following audit error
     messages:
     "crond[18233]: System error
      crond[18233]: CRON (root) ERROR: failed to open PAM security session:
                    Connection refused
      crond[18233]: CRON (root) ERROR: cannot set security context".
 
   - Writing data in parallel into several memory mapped files located on an NFS
     partition could result in data corruption.
 
   - An unsuccessful attempt to stop a Container could lead to a socket leakage
     followed by never-ending messages:
     "unregister_netdevice: waiting for lo to become free. Usage count = 3".
 
   - [SLM]: Locked pages were accounted twice by the SLM code.
 
   - [SLM]: The "--meminfo=none" vzctl option did not disable the Container's
     memory information virtualization in case the SLM modules were loaded.
     Disabling memory information virtualization is useful for Containers running
     Oracle software as the latter checks for swap presence.
 
   - I/O priorities did not work well if all the Containers ran each only one
     process that actively used the disk subsystem.
 
   - There could appear processes consuming 100% of the CPU if the "tcpsndbuf"
     limit was exceeded. The processes broke busy loops if a signal was sent to
     them, for example, if there was an attempt to strace the process.
 
   - The traffic accounting statistics could not be reset without a Hardware Node
     restart.
 
   - The kernel.vzprivrange and kernel.ve_allow_kthreads sysctl's could be
     invisible in the /proc/sys/kernel/ directory in case someone accessed
     /proc/sys/kernel before Virtuozzo Containers 4.0 started.
 
   - The I/O statistics available via /proc/bc/CTID/ioacct could report more
     "read" bytes than were actually read by the Container.
 
   - The quota tools inside a 32-bit Container based on old templates (e.g.
     redhat-as3) and running on a 64-bit Hardware Node could report incorrect
     values.
 
   - [NFS]: A directory listing on an NFS partition took an extremely long time
     to complete in case there were other processes writing to the same
     directory.
 
   - A kernel crash could happen in do_uncharge_dcache() while turning on the
     precise dcache accounting.
 
   - Some applications could crash inside a Container based on the RedHat 7.3
     template because they were not aware of the kernel address space
     randomization feature. The kernel.randomize_va_space sysctl has been
     virtualized to providing the ability to switch off this feature for affected
     Containers.
 
 
 Besides, the new Virtuozzo Containers 4.0 kernel includes the following
 improvements:
 
   - The kernel has been re-based on the 2.6.18-92.1.1.el5 Red Hat kernel.
 
   - [CPT]: The checkpointing code has been enhanced to support an iterative
     online migration of shared memory.
 
   - [CPT]: A check for the required iptables modules being loaded on the
     destination Node has been added to the migration code along with a proper
     error message. Before this enhancement, the online migration failed for lack
     of certain iptables modules with the following message:
     "CPT ERR: ffff810020153000,250 :iptables-restore exited with 1".
 
   - [CPT]: A check for 'slm_dmprst' being loaded on both the source and
     destination Nodes has been added to the migration code along with a proper
     error message. Before this enhancement, the online migration failed for lack
     of this module with the following message:
     "vzctl : Can't undump: Channel number out of range".
 
   - The binfmt_misc capability has been virtualized, which allows to install Sun
     Java 1.6.0 without the failure of the postinstall script to configure the
     binfmt_misc wrapper inside a Container.
 
   - The sysfs 'mem' class and some of its devices (null, zero, full, random,
     urandom) has been virtualized, which allows to run 'udevd' inside a
     Container based on the Ubuntu 8.04 template.
 
   - An empty /proc/devices file has been added to a Container to avoid
     /sbin/MAKEDEV's warning: "can't read /proc/devices".
 
   - The NFSv2 support has been disabled in favor of NFSv3.
 
 
 
 We highly recommend that all Parallels Virtuozzo Containers 4.0 users update
 their kernel to the latest version.
 
 --------------------------------------------------------------------------------
 
 3. BUGS FIXED
 
 The following bugs from the previous release have been fixed in the new
 Virtuozzo Containers 4.0 kernel:
 
 - #99018:  [ia64]: execve() returns positive error codes on ia64 arch.
 
 - #96464:  [CPT]: inotify on symlinks should be restored after online migration.
 
 - #95113:  [CPT]: open socket requests are not restored correctly after an
            online migration.
 
 - #99542:  [CPT]: temporary files should be created with O_LARGEFILE flag during
            checkpointing and restore process.
 
 - #93544:  CPUUNITS parameter influence is very weak in case only a few
            Containers are on the Hardware Node.
 
 - #98868:  Modern ccNUMA AMD servers do not perform as expected.
 
 - #82009:  The kernel mistakenly returns -EACCESS on accessing a
            /proc/
/ symlink for a zombie process instead of -ENOENT.
 
 - #99599:  binfmt_misc capability should be virtualized.
 
 - #114887: /proc/stat reports non-virtualized btime.
 
 - #99897:  'udevd' does not start inside a Container based on Ubuntu 8.04.
 
 - #112588: Asynchronous audit netlink message handling produces errors during
            PAM authorization.
 
 - #114565: Data corruption on mmaped file over NFS filesystem.
 
 - #75822:  Raw sockets leak leads to unregister_netdevice() failure.
 
 - #114720: NFSv2 support should be disabled.
 
 - #114684: [SLM]: locked pages are accounted twice.
 
 - #111516: [SLM]: "--meminfo=none" vzctl option does not work if SLM is enabled.
 
 - #98276:  I/O priorities do not work well for single readers.
 
 - #112103: An endless loop is possible while waiting for TCPSNDBUF memory if
            timeout is not specified.
 
 - #111468: A memory leak in venet_acct_set_base() leads to inability to reset
            traffic network statistics.
 
 - #112482: "kernel.vzprivrange" and "kernel.ve_allow_kthreads" are invisible
            in /proc/sys/kernel/.
 
 - #111808: Value too high for "read" bytes in I/O accounting statistics.
 
 - #95952:  [CPT]: diagnostics in case of iptables-restore failure should be
            enhanced.
 
 - #114312: [CPT]: A check if 'slm_dmprst' module is loaded should be added.
 
 - #115752: Quota v2 (old) structures are not 32bit emulation aware.
 
 - #116274: [NFS]: nfs_getattr() hang during heavy write workloads.
 
 - #116095: A kernel crash in do_uncharge_dcache().
 
 - #114847: /sbin/MAKEDEV: warning: can't read /proc/devices.
 
 - #115336: kernel.randomize_va_space sysctl should be virtualized.
 
 
 The following OpenVZ bugs have been fixed:
 
 - #784: [CPT]: UDP sockets can be restored incorrectly after online migration.
 
 - #491: Incorrent heap rlimit calculation caused by a bug in exec shield code.
 
 - #680: [ppc64]: The return code from do_pte_alloc() is not checked.
 
 - #782: /proc/user_bean_counters permissions should be reported as "r--------".
 
 - #826: Sysctl "sys.ipv4.conf.default" does not work inside a Container.
 
 - #788: An oops in netlink conntrack module if conntrack modules were loaded
         after the Container start.
 
 - #828: /proc/stat reports non-virtualized btime.
 
 - #736: getpriority() syscall should not work with 'real' pids if called from
         inside a Container.
 
 - #394: /proc/vz/veinfo should be available even if 'venet' module is not
         loaded.
 
 --------------------------------------------------------------------------------
 
 4. OBTAINING NEW KERNEL
 
 You can get this kernel update in one of the following ways:
 
 - You can download and install the update by using the vzup2date utility
   included in the Parallels Virtuozzo Containers 4.0 distribution set.
 
 - You can download the update from ftp://downloads.swsoft.com.
 
 --------------------------------------------------------------------------------
 
 5. INSTALLING NEW KERNEL
 
 To install the update, you should perform the following operations:
 
 I. Use the "rpm -ihv" command to install the new kernel and Virtuozzo modules.
 
 # rpm -ivh vzkernel-2.6.18-028stab057.2.i686.rpm \
 vzmodules-2.6.18-028stab057.2.i686.rpm
 Preparing...                ################################# [100%]
     1:vzkernel               ################################# [50%]
     2:vzmodules              ################################# [100%]
 
     Please DO NOT USE the "rpm -Uhv" command to install the kernel. Otherwise,
     all the kernels previously installed on your system may be removed from
     the Hardware Node.
 
 II. You can adjust your boot loader configuration file to have the new kernel
     loaded by default. If you use the LILO bootloader, please do not forget to
     execute the 'lilo' command to write the changes to the boot sector:
 
      # lilo
      Added Virtuozzo2 *
      Added Virtuozzo1
      Added linux
      Added linux-up
 
 III. Reboot your computer with the "shutdown -r now" command to boot the new
      kernel.
 
 --------------------------------------------------------------------------------
 
 6. REQUIRED RPMS
 
 Depending on the kind of processor on your Hardware Node, the following RPM
 packages are included in the kernel update:
 
 x86 kernels:
 
 - SMP:
    vzkernel-2.6.18-028stab057.2.i686.rpm
    vzmodules-2.6.18-028stab057.2.i686.rpm
 
 - Enterprise:
    vzkernel-ent-2.6.18-028stab057.2.i686.rpm
    vzmodules-ent-2.6.18-028stab057.2.i686.rpm
 
 - Enterprise with the 4GB split feature disabled:
    vzkernel-PAE-2.6.18-028stab057.2.i686.rpm
    vzmodules-PAE-2.6.18-028stab057.2.i686.rpm
 
 
 x86_64 kernels:
 
 - SMP:
    vzkernel-2.6.18-028stab057.2.x86_64.rpm
    vzmodules-2.6.18-028stab057.2.x86_64.rpm
 
 ia64 kernel:
    vzkernel-2.6.18-028stab057.2.ia64.rpm
    vzmodules-2.6.18-028stab057.2.ia64.rpm
 
 --------------------------------------------------------------------------------
 
 7. REFERENCE LIST
 
 The following references have been used in this document:
 
 - https://rhn.redhat.com/errata/RHBA-2008-0499.html
 
 - https://rhn.redhat.com/errata/RHBA-2008-0314.html
 
 - http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2008-2365
 
 - https://rhn.redhat.com/errata/RHSA-2008-0275.html
 
 - http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2007-5093
 
 - http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2007-6282
 
 - http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2007-6712
 
 - http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2008-1615


Keywords: update


Subscription for this article changesSubscription for this article changes

Please provide feedback on this article

Did this article help you solve your issue?
Yes
No
Partially
I do not know yet
 
Strongly Agree   Strongly Disagree
  9 8 7 6 5 4 3 2 1
The article is easy to understand
The article is accurate
Additional Comments:
*Please provide us with your email address in case we need to contact you.
* - required fields