- Issued:
- 2009-11-03
- Updated:
- 2009-11-03
RHSA-2009:1550 - Security Advisory
Synopsis
Important: kernel security and bug fix update
Type/Severity
Security Advisory: Important
Topic
Updated kernel packages that fix several security issues and multiple bugs
are now available for Red Hat Enterprise Linux 3.
This update has been rated as having important security impact by the Red
Hat Security Response Team.
Description
The kernel packages contain the Linux kernel, the core of any Linux
operating system.
Security fixes:
- when fput() was called to close a socket, the __scm_destroy() function in
the Linux kernel could make indirect recursive calls to itself. This could,
potentially, lead to a denial of service issue. (CVE-2008-5029, Important)
- the sendmsg() function in the Linux kernel did not block during UNIX
socket garbage collection. This could, potentially, lead to a local denial
of service. (CVE-2008-5300, Important)
- the exit_notify() function in the Linux kernel did not properly reset the
exit signal if a process executed a set user ID (setuid) application before
exiting. This could allow a local, unprivileged user to elevate their
privileges. (CVE-2009-1337, Important)
- a flaw was found in the Intel PRO/1000 network driver in the Linux
kernel. Frames with sizes near the MTU of an interface may be split across
multiple hardware receive descriptors. Receipt of such a frame could leak
through a validation check, leading to a corruption of the length check. A
remote attacker could use this flaw to send a specially-crafted packet that
would cause a denial of service or code execution. (CVE-2009-1385,
Important)
- the ADDR_COMPAT_LAYOUT and MMAP_PAGE_ZERO flags were not cleared when a
setuid or setgid program was executed. A local, unprivileged user could use
this flaw to bypass the mmap_min_addr protection mechanism and perform a
NULL pointer dereference attack, or bypass the Address Space Layout
Randomization (ASLR) security feature. (CVE-2009-1895, Important)
- it was discovered that, when executing a new process, the clear_child_tid
pointer in the Linux kernel is not cleared. If this pointer points to a
writable portion of the memory of the new program, the kernel could corrupt
four bytes of memory, possibly leading to a local denial of service or
privilege escalation. (CVE-2009-2848, Important)
- missing initialization flaws were found in getname() implementations in
the IrDA sockets, AppleTalk DDP protocol, NET/ROM protocol, and ROSE
protocol implementations in the Linux kernel. Certain data structures in
these getname() implementations were not initialized properly before being
copied to user-space. These flaws could lead to an information leak.
(CVE-2009-3002, Important)
- a NULL pointer dereference flaw was found in each of the following
functions in the Linux kernel: pipe_read_open(), pipe_write_open(), and
pipe_rdwr_open(). When the mutex lock is not held, the i_pipe pointer could
be released by other processes before it is used to update the pipe's
reader and writer counters. This could lead to a local denial of service or
privilege escalation. (CVE-2009-3547, Important)
Bug fixes:
- this update adds the mmap_min_addr tunable and restriction checks to help
prevent unprivileged users from creating new memory mappings below the
minimum address. This can help prevent the exploitation of NULL pointer
dereference bugs. Note that mmap_min_addr is set to zero (disabled) by
default for backwards compatibility. (BZ#512642)
- a bridge reference count problem in IPv6 has been fixed. (BZ#457010)
- enforce null-termination of user-supplied arguments to setsockopt().
(BZ#505514)
- the gcc flag "-fno-delete-null-pointer-checks" was added to the kernel
build options. This prevents gcc from optimizing out NULL pointer checks
after the first use of a pointer. NULL pointer bugs are often exploited by
attackers. Keeping these checks is a safety measure. (BZ#511185)
- a check has been added to the IPv4 code to make sure that rt is not NULL,
to help prevent future bugs in functions that call ip_append_data() from
being exploitable. (BZ#520300)
Users should upgrade to these updated packages, which contain backported
patches to correct these issues. The system must be rebooted for this
update to take effect.
Solution
Before applying this update, make sure that all previously-released
errata relevant to your system have been applied.
This update is available via Red Hat Network. Details on how to use
the Red Hat Network to apply this update are available at
http://kbase.redhat.com/faq/docs/DOC-11259
Affected Products
- Red Hat Enterprise Linux Server 3 x86_64
- Red Hat Enterprise Linux Server 3 ia64
- Red Hat Enterprise Linux Server 3 i386
- Red Hat Enterprise Linux Workstation 3 x86_64
- Red Hat Enterprise Linux Workstation 3 ia64
- Red Hat Enterprise Linux Workstation 3 i386
- Red Hat Enterprise Linux Desktop 3 x86_64
- Red Hat Enterprise Linux Desktop 3 i386
- Red Hat Enterprise Linux for IBM z Systems 3 s390x
- Red Hat Enterprise Linux for IBM z Systems 3 s390
- Red Hat Enterprise Linux for Power, big endian 3 ppc
Fixes
- BZ - 457010 - ipv6: use timer pending to fix bridge reference count problem [rhel-3.9]
- BZ - 470201 - CVE-2008-5029 kernel: Unix sockets kernel panic
- BZ - 473259 - CVE-2008-5300 kernel: fix soft lockups/OOM issues with unix socket garbage collector
- BZ - 493771 - CVE-2009-1337 kernel: exit_notify: kill the wrong capable(CAP_KILL) check
- BZ - 502981 - CVE-2009-1385 kernel: e1000_clean_rx_irq() denial of service
- BZ - 505514 - kernel: ensure devname passed to SO_BINDTODEVICE is NULL-terminated [rhel-3]
- BZ - 511171 - CVE-2009-1895 kernel: personality: fix PER_CLEAR_ON_SETID
- BZ - 511185 - kernel: build with -fno-delete-null-pointer-checks [rhel-3]
- BZ - 512642 - kernel: security: implement mmap_min_addr infrastructure [rhel-3]
- BZ - 515423 - CVE-2009-2848 kernel: execve: must clear current->clear_child_tid
- BZ - 519305 - CVE-2009-3001, CVE-2009-3002 kernel: numerous getname() infoleaks
- BZ - 520300 - kernel: ipv4: make ip_append_data() handle NULL routing table [rhel-3]
- BZ - 530490 - CVE-2009-3547 kernel: fs: pipe.c null pointer dereference
CVEs
The Red Hat security contact is secalert@redhat.com. More contact details at https://access.redhat.com/security/team/contact/.