FreeBSD Security Advisory FreeBSD-SA-04:13.linux

From: FreeBSD Security Advisories (security-advisories_at_freebsd.org)
Date: 07/01/04

  • Next message: Donato Ferrante: "Multiple Vulnerabilities in Easy Chat Server 1.2"
    To: Bugtraq <bugtraq@securityfocus.com>
    Date: Thu,  1 Jul 2004 10:03:43 +0200 (CEST)
    
    

    -----BEGIN PGP SIGNED MESSAGE-----
    Hash: SHA1

    =============================================================================
    FreeBSD-SA-04:13.linux Security Advisory
                                                              The FreeBSD Project

    Topic: Linux binary compatibility mode input validation error

    Category: core
    Module: kernel
    Announced: 2004-06-30
    Credits: Tim Robbins
    Affects: All 4.x and 5.x releases
    Corrected: 2004-06-30 17:31:44 UTC (RELENG_4)
                    2004-06-30 17:34:38 UTC (RELENG_5_2, 5.2.1-RELEASE-p9)
                    2004-06-30 17:33:59 UTC (RELENG_4_10, 4.10-RELEASE-p2)
                    2004-06-30 17:33:24 UTC (RELENG_4_9, 4.9-RELEASE-p11)
                    2004-06-30 17:32:24 UTC (RELENG_4_8, 4.8-RELEASE-p24)
    CVE Name: CAN-2004-0602
    FreeBSD only: YES

    For general information regarding FreeBSD Security Advisories,
    including descriptions of the fields above, security branches, and the
    following sections, please visit
    <URL:http://www.freebsd.org/security/>.

    I. Background

    FreeBSD is binary-compatible with the Linux operating system through a
    loadable kernel module/optional kernel component.

    II. Problem Description

    A programming error in the handling of some Linux system calls may
    result in memory locations being accessed without proper validation.

    III. Impact

    It may be possible for a local attacker to read and/or overwrite
    portions of kernel memory, resulting in disclosure of sensitive
    information or potential privilege escalation. A local attacker can
    cause a system panic.

    IV. Workaround

    The only known workaround is to disable the linux binary compatibility
    layer and prevent it from being (re)loaded. Note that step (a) must be
    performed before step (b).

    a) To prevent the linux compatibility layer being (re)loaded, remove the
    /boot/kernel/linux.ko file (on FreeBSD 5.x) or the /modules/linux.ko
    file (on FreeBSD 4.x), and add or change the following line in
    /etc/rc.conf:

    linux_enable="NO" # Linux binary compatibility loaded at startup (or NO).

    Add or change the following lines in /boot/loader.conf:

    linux_load="NO" # Linux emulation
    linprocfs_load="NO"

    In addition, remove any linprocfs file system listed in /etc/fstab.

    b) To disable the linux binary compatibility layer, first determine if
    it is loaded:

    # kldstat -v | grep linuxelf

    If no output is produced, the linux compatibility layer is not loaded;
    stop here.

    If the linux compatibility layer is loaded, determine if it is compiled
    into the kernel or loaded as a module:

    # kldstat | grep linux.ko

    If no output is produced, the linux compatibility layer is compiled
    into the kernel. Remove the line

    options COMPAT_LINUX

    from your kernel configuration file and recompile the kernel as
    described in
    <URL:http://www.freebsd.org/handbook/kernelconfig.html> and reboot the
    system.

    If output is produced, then the linux compatibility layer is loaded as
    a kernel module. If the module is not currently being used (by a
    process running under linux emulation, for example) then it may be
    possible to unload it:

    # kldunload linux
    # kldstat | grep linux.ko

    If this does not successfully unload the module, reboot the system.

    V. Solution

    Perform one of the following:

    1) Upgrade your vulnerable system to 4-STABLE; or to the RELENG_5_2,
    RELENG_4_10, RELENG_4_9, or RELENG_4_8 security branch dated after the
    correction date.

    2) To patch your present system:

    The following patches have been verified to apply to FreeBSD 4.8, 4.9,
    4.10 and 5.2 systems.

    a) Download the relevant patch from the location below, and verify the
    detached PGP signature using your PGP utility.

    [FreeBSD 5.2]
    # fetch ftp://ftp.FreeBSD.org/pub/FreeBSD/CERT/patches/SA-04:13/linux5.patch
    # fetch ftp://ftp.FreeBSD.org/pub/FreeBSD/CERT/patches/SA-04:13/linux5.patch.asc

    [FreeBSD 4.8, 4.9, 4.10]
    # fetch ftp://ftp.FreeBSD.org/pub/FreeBSD/CERT/patches/SA-04:13/linux4.patch
    # fetch ftp://ftp.FreeBSD.org/pub/FreeBSD/CERT/patches/SA-04:13/linux4.patch.asc

    b) Apply the patch.

    # cd /usr/src
    # patch < /path/to/patch

    c) Recompile your kernel as described in
    <URL:http://www.freebsd.org/handbook/kernelconfig.html> and reboot the
    system.

    VI. Correction details

    The following list contains the revision numbers of each file that was
    corrected in FreeBSD.

    Branch Revision
      Path
    - -------------------------------------------------------------------------
    RELENG_4
      src/sys/compat/linux/linux_ioctl.c 1.55.2.13
    RELENG_5_2
      src/UPDATING 1.282.2.17
      src/sys/compat/linux/linux_ioctl.c 1.112.2.1
      src/sys/conf/newvers.sh 1.56.2.16
    RELENG_4_10
      src/UPDATING 1.73.2.90.2.3
      src/sys/compat/linux/linux_ioctl.c 1.55.2.12.4.1
      src/sys/conf/newvers.sh 1.44.2.34.2.4
    RELENG_4_9
      src/UPDATING 1.73.2.89.2.12
      src/sys/compat/linux/linux_ioctl.c 1.55.2.12.2.1
      src/sys/conf/newvers.sh 1.44.2.32.2.12
    RELENG_4_8
      src/UPDATING 1.73.2.80.2.27
      src/sys/compat/linux/linux_ioctl.c 1.55.2.10.6.1
      src/sys/conf/newvers.sh 1.44.2.29.2.25
    - -------------------------------------------------------------------------
    -----BEGIN PGP SIGNATURE-----
    Version: GnuPG v1.2.4 (FreeBSD)

    iD8DBQFA48FqFdaIBMps37IRArpeAKCP1G1bFmYiD0v3Qdg8pq5zkV7JywCcDUHn
    dz5yJTOovQSmIaLVD/Ei8Xw=
    =SVrJ
    -----END PGP SIGNATURE-----


  • Next message: Donato Ferrante: "Multiple Vulnerabilities in Easy Chat Server 1.2"

    Relevant Pages