SuSE Inc. Information for VU#973654

Linux kernel fails to properly handle floating point signals generated by "fsave" and "frstor"



Vendor Statement

We will release a new kernel package as soon as possible. Our customers can update their systems by using the YaST Online Update (YOU) tool or installing the RPM file directly from

Vendor Information

The vendor has not provided us with any further information regarding this vulnerability.

Vendor References





                       SUSE Security Announcement

       Package:                kernel
       Announcement-ID:        SuSE-SA:2004:017
       Date:                   Wednesday, Jun 16th 2004 15:20 MEST
       Affected products:      8.0, 8.1, 8.2, 9.0, 9.1
                               SuSE Linux Database Server,
                               SuSE eMail Server III, 3.1
                               SuSE Linux Enterprise Server 7, 8
                               SuSE Linux Firewall on CD/Admin host
                               SuSE Linux Connectivity Server
                               SuSE Linux Office Server
       Vulnerability Type:     local denial-of-service attack
       Severity (1-10):        4
       SUSE default package:   no
       Cross References:       CAN-2004-0554

   Content of this advisory:
       1) security vulnerability resolved:
            - floating point exception causes system crash
          problem description, discussion, solution and upgrade information
       2) pending vulnerabilities, solutions, workarounds:
            - icecast
            - sitecopy
            - cadaver
            - OpenOffice_org
            - tripwire
            - postgresql
            - lha
            - XDM
            - mod_proxy
        3) standard appendix (further information)


1)  problem description, brief discussion, solution, upgrade information

   The Linux kernel is vulnerable to a local denial-of-service attack.
   By using a C program it is possible to trigger a floating point
   exception that puts the kernel into an unusable state.
   To execute this attack a malicious user needs shell access to the
   victim's machine.
   The severity of this bug is considered low because local denial-of-
   service attacks are hard to prevent in general.
   Additionally the bug is limited to x86 and x86_64 architecture.

   The following paragraphs will guide you through the installation
   process in a step-by-step fashion. The character sequence "****"
   marks the beginning of a new paragraph. In some cases, the steps
   outlined in a particular paragraph may or may not be applicable
   to your situation.
   Therefore, please make sure to read through all of the steps below
   before attempting any of these procedures.
   All of the commands that need to be executed are required to be
   run as the superuser (root). Each step relies on the steps before
   it to complete successfully.
   Note: The update packages for the SuSE Linux Enterprise Server 7
   (SLES7) are being tested at the moment and will be published as soon
   as possible.

 **** Step 1: Determine the needed kernel type

   Please use the following command to find the kernel type that is
   installed on your system:

     rpm -qf /boot/vmlinuz

   Following are the possible kernel types (disregard the version and
   build number following the name separated by the "-" character)

     k_deflt   # default kernel, good for most systems.
     k_i386    # kernel for older processors and chipsets
     k_athlon  # kernel made specifically for AMD Athlon(tm) family processors
     k_psmp    # kernel for Pentium-I dual processor systems
     k_smp     # kernel for SMP systems (Pentium-II and above)
     k_smp4G   # kernel for SMP systems which supports a maximum of 4G of RAM

 **** Step 2: Download the package for your system

   Please download the kernel RPM package for your distribution with the
   name as indicated by Step 1. The list of all kernel rpm packages is
   appended below. Note: The kernel-source package does not
   contain a binary kernel in bootable form. Instead, it contains the
   sources that the binary kernel rpm packages are created from. It can be
   used by administrators who have decided to build their own kernel.
   Since the kernel-source.rpm is an installable (compiled) package that
   contains sources for the linux kernel, it is not the source RPM for
   the kernel RPM binary packages.

   The kernel RPM binary packages for the distributions can be found at the
   locations below


   After downloading the kernel RPM package for your system, you should
   verify the authenticity of the kernel rpm package using the methods as
   listed in section 3) of each SUSE Security Announcement.

 **** Step 3: Installing your kernel rpm package

   Install the rpm package that you have downloaded in Steps 3 or 4 with
   the command
       rpm -Uhv --nodeps --force <K_FILE.RPM>
   where <K_FILE.RPM> is the name of the rpm package that you downloaded.

   Warning: After performing this step, your system will likely not be
            able to boot if the following steps have not been fully

   If you run SUSE LINUX 8.1 and haven't applied the kernel update
   (SUSE-SA:2003:034), AND you are using the freeswan package, you also
   need to update the freeswan rpm as a dependency as offered
   by YOU (YaST Online Update). The package can be downloaded from

 **** Step 4: configuring and creating the initrd

   The initrd is a ramdisk that is loaded into the memory of your
   system together with the kernel boot image by the bootloader. The
   kernel uses the content of this ramdisk to execute commands that must
   be run before the kernel can mount its actual root filesystem. It is
   usually used to initialize SCSI drivers or NIC drivers for diskless

   The variable INITRD_MODULES in /etc/sysconfig/kernel determines
   which kernel modules will be loaded in the initrd before the kernel
   has mounted its actual root filesystem. The variable should contain
   your SCSI adapter (if any) or filesystem driver modules.

   With the installation of the new kernel, the initrd has to be
   re-packed with the update kernel modules. Please run the command


   as root to create a new init ramdisk (initrd) for your system.
   On SuSE Linux 8.1 and later, this is done automatically when the
   RPM is installed.

 **** Step 5: bootloader

   If you run a SUSE LINUX 8.x, SLES8, or SUSE LINUX 9.x system, there
   are two options:
   Depending on your software configuration, you have either the lilo
   bootloader or the grub bootloader installed and initialized on your
   The grub bootloader does not require any further actions to be
   performed after the new kernel images have been moved in place by the
   rpm Update command.
   If you have a lilo bootloader installed and initialized, then the lilo
   program must be run as root. Use the command

     grep LOADER_TYPE /etc/sysconfig/bootloader

   to find out which boot loader is configured. If it is lilo, then you
   must run the lilo command as root. If grub is listed, then your system
   does not require any bootloader initialization.

   Warning: An improperly installed bootloader may render your system

 **** Step 6: reboot

   If all of the steps above have been successfully completed on your
   system, then the new kernel including the kernel modules and the
   initrd should be ready to boot. The system needs to be rebooted for
   the changes to become active. Please make sure that all steps have
   completed, then reboot using the command
       shutdown -r now
       init 6

   Your system should now shut down and reboot with the new kernel.

   There is no workaround known.

   Please download the update package for your distribution and verify its
   integrity by the methods listed in section 3) of this announcement.
   Then, install the package using the command "rpm -Fhv file.rpm" to apply
   the update.
   Our maintenance customers are being notified individually. The packages
   are being offered to install from the maintenance web.

   Intel i386 Platform:

   source rpm(s):

   source rpm(s):

   source rpm(s):

   source rpm(s):

   source rpm(s):

   Opteron x86_64 Platform:

   source rpm(s):

   source rpm(s):


2)  Pending vulnerabilities in SUSE Distributions and Workarounds:

   - icecast
   The icecast service is vulnerable to a remote denial-of-service
   attack. Update packages will be available soon.

   - sitecopy
   The sitecopy package includes a vulnerable version of the
   neon library (CAN-2004-0179, CAN-2004-0398). Update packages will be
   available soon.

   - cadaver
   The cadaver package includes a vulnerable version of the
   neon library (CAN-2004-0179, CAN-2004-0398). Update packages will be
   available soon.

   - OpenOffice_org
   The OpenOffice_org package includes a vulnerable version
   of the neon library (CAN-2004-0179, CAN-2004-0398). Update packages
   will be available soon.

   - tripwire
   A format string bug in tripwire can be exploited locally
   to gain root permissions. Update packages will be available soon.

    - postgresql
   A buffer overflow in psqlODBC could be exploited to crash the
   application using it. E.g. a PHP script that uses ODBC to access a
   PostgreSQL database can be utilized to crash the surrounding Apache
   web-server. Other parts of PostgreSQL are not affected.
   Update packages will be available soon.

   - lha
   Minor security fix for a buffer overflow while handling command
   line options. This buffer overflow could be exploited in conjunction
   with other mechanisms to gain higher privileges or access the system

   - XDM/XFree86
   This update resolves random listening to ports by XDM
   that allows to connect via the XDMCP. SUSE LINUX 9.1
   is affected only.
   New packages are currently being tested and will be
   available soon.

   - mod_proxy
   A buffer overflow can be triggered by malicious remote
   servers that return a negative Content-Length value.
   This vulnerability can be used to execute commands remotely
   New packages are currently being tested and will be
   available soon.


3)  standard appendix: authenticity verification, additional information

 - Package authenticity verification:

   SUSE update packages are available on many mirror ftp servers around
   the world. While this service is considered valuable and important
   to the free and open source software community, many users wish to be
   certain as to be the origin of the package and its content before
   installing the package. There are two independent verification methods
   that can be used to prove the authenticity of a downloaded file or
   rpm package:
   1) md5sums as provided in the (cryptographically signed) announcement.
   2) using the internal gpg signatures of the rpm package.

   1) execute the command
       md5sum <name-of-the-file.rpm>
      after you have downloaded the file from a SUSE ftp server or its
      mirrors. Then, compare the resulting md5sum with the one that is
      listed in the announcement. Since the announcement containing the
      checksums is cryptographically signed (usually using the key, the checksums offer proof of the authenticity
      of the package.
      We recommend against subscribing to security lists which cause the
      email message containing the announcement to be modified so that
      the signature does not match after transport through the mailing
      list software.
      Downsides: You must be able to verify the authenticity of the
      announcement in the first place. If RPM packages are being rebuilt
      and a new version of a package is published on the ftp server, all
      md5 sums for the files are useless.

   2) rpm package signatures provide an easy way to verify the authenticity
      of an rpm package. Use the command
       rpm -v --checksig <file.rpm>
      to verify the signature of the package, where <file.rpm> is the
      filename of the rpm package that you have downloaded. Of course,
      package authenticity verification can only target an un-installed rpm
      package file.
       a) gpg is installed
       b) The package is signed using a certain key. The public part of this
          key must be installed by the gpg program in the directory
          ~/.gnupg/ under the user's home directory who performs the
          signature verification (usually root). You can import the key
          that is used by SUSE in rpm packages for SUSE Linux by saving
          this announcement to a file ("announcement.txt") and
          running the command (do "su -" to be root):
           gpg --batch; gpg < announcement.txt | gpg --import
          SUSE Linux distributions version 7.1 and thereafter install the
          key "" upon installation or upgrade, provided that
          the package gpg is installed. The file containing the public key
          is placed at the top-level directory of the first CD (pubring.gpg)
          and at .

 - SUSE runs two security mailing lists to which any interested party may
       -   general/linux/SUSE security discussion.
           All SUSE security announcements are sent to this list.
           To subscribe, send an email to
       -   SUSE's announce-only mailing list.
           Only SUSE's security announcements are sent to this list.
           To subscribe, send an email to

   For general information or the frequently asked questions (faq)
   send mail to:
       <> or
       <> respectively.

   SUSE's security contact is <> or <>.
   The <> public key is listed below.

   The information in this advisory may be distributed or reproduced,
   provided that the advisory is not modified in any way. In particular,
   it is desired that the clear-text signature must show proof of the
   authenticity of the text.
   SUSE Linux AG makes no warranties of any kind whatsoever with respect
   to the information contained in this security advisory.

Type Bits/KeyID    Date       User ID
pub  2048R/3D25D3D9 1999-03-06 SuSE Security Team <>
pub  1024D/9C800ACA 2000-10-19 SuSE Package Signing Key <>

Version: GnuPG v1.0.6 (GNU/Linux)
Comment: For info see



Version: GnuPG v1.2.2 (GNU/Linux)


If you have feedback, comments, or additional information about this vulnerability, please send us email.