Bug 473696 (CVE-2008-5079) - CVE-2008-5079 Linux Kernel 'atm module' Local Denial of Service
Summary: CVE-2008-5079 Linux Kernel 'atm module' Local Denial of Service
Keywords:
Status: CLOSED ERRATA
Alias: CVE-2008-5079
Product: Security Response
Classification: Other
Component: vulnerability
Version: unspecified
Hardware: All
OS: Linux
high
high
Target Milestone: ---
Assignee: Red Hat Product Security
QA Contact:
URL:
Whiteboard: impact=important,source=bugzilla,repo...
Depends On: 473606 473697 473698 473699 473700 473701 474298 474299 474300
Blocks:
TreeView+ depends on / blocked
 
Reported: 2008-11-30 02:30 UTC by Eugene Teo (Security Response)
Modified: 2019-06-08 12:38 UTC (History)
11 users (show)

Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Clone Of:
Environment:
Last Closed: 2010-12-21 17:54:25 UTC


Attachments (Terms of Use)
Reproducer from Hugo (1.32 KB, text/plain)
2008-11-30 02:59 UTC, Eugene Teo (Security Response)
no flags Details
Proposed patch for real-time kernel (855 bytes, patch)
2008-12-04 08:07 UTC, Eugene Teo (Security Response)
no flags Details | Diff


Links
System ID Priority Status Summary Last Updated
Red Hat Product Errata RHSA-2009:0021 normal SHIPPED_LIVE Important: kernel security update 2009-02-25 01:04:12 UTC
Red Hat Product Errata RHSA-2009:0053 normal SHIPPED_LIVE Important: kernel-rt security and bug fix update 2009-02-04 15:05:12 UTC
Red Hat Product Errata RHSA-2009:0225 normal SHIPPED_LIVE Important: Red Hat Enterprise Linux 5.3 kernel security and bug fix update 2009-01-20 16:06:24 UTC

Description Eugene Teo (Security Response) 2008-11-30 02:30:27 UTC
From  Hugo Dias (hdias@synchlabs.com):
It seems that calling the svc_listen function in 'net/atm/svc.c' 
twice on same socket, will create unassigned PVC/SVC entries.

This entries are visible using proc filesystem.

#cat /proc/net/atm/vc

Address  Itf ...
c7f34400 Unassigned   ...
c7f34400 Unassigned   ...
c7f34400 Unassigned   ...
.......

The code in 'net/atm/proc.c', can't handle the unassigned entries. Kernel will
freeze with infinite loop in 'proc.c' if we cat '/proc/net/atm/pvc'  :

net/atm/proc.c:

074 static inline int compare_family(struct sock *sk, int family)
073 {
074         return !family || (sk->sk_family == family);
075 }

091 try_again:
092         for (; sk; sk = sk_next(sk)) {
093                 l -= compare_family(sk, family); <<<<<<<<<
094                 if (l < 0)            
095                         goto out; 
096         }

Version-Release number of selected component (if applicable):

Linux Kernel 2.6.x

(Fedora Core 10  - 2.6.25-14.fc9.i686)
(Fedora Core 9   - 2.6.25-14.fc9.x86_64)
(Fedora Core 9   - 2.6.25-14.fc9.i686 )

How reproducible:

Please see attachment

Actual results:
Kernel hang

Expected results:
Not Hang

Comment 4 Eugene Teo (Security Response) 2008-11-30 02:57:40 UTC
Seems to be introduced by upstream commit 9301e32:
From 9301e320e98ff19a0e48881b038d0c24ca76e6c0 Mon Sep 17 00:00:00 2001
From: Chas Williams <chas@cmf.nrl.navy.mil>
Date: Wed, 28 Sep 2005 16:35:01 -0700
Subject: [PATCH] [ATM]: track and close listen sockets when sigd exits

Signed-off-by: Chas Williams <chas@cmf.nrl.navy.mil>

Tested the upstream kernel without commit 9301e32. It's not reproducible.

Comment 6 Eugene Teo (Security Response) 2008-12-01 02:32:53 UTC
(In reply to comment #3)
> on rhel4 kernel, this bug is not triggerable.

Like rhel4, tested 2.4.21-57.EL on rhel3, and the bug is not triggerable.

[test@rhel3-as-i386 test]$ ./atmdos
Itf VPI VCI   AAL RX(PCR,Class) TX(PCR,Class)
[test@rhel3-as-i386 test]$ uname -a
Linux rhel3-as-i386 2.4.21-57.EL #1 Wed Apr 23 01:46:01 EDT 2008 i686 i686 i386 GNU/Linux

Comment 16 Eugene Teo (Security Response) 2008-12-04 08:07:07 UTC
Created attachment 325649 [details]
Proposed patch for real-time kernel

taskID=1598153; Tested this with the reproducer.

Comment 17 Eugene Teo (Security Response) 2008-12-05 00:24:18 UTC
This is public now.
http://marc.info/?l=linux-netdev&m=122841256115780&w=2
http://marc.info/?l=linux-netdev&m=122843162615569&w=2

Comment 18 Chuck Ebbert 2008-12-09 04:02:23 UTC
Fixed in Fedora 10 kernel 2.6.27.8-143

Comment 19 Chuck Ebbert 2008-12-09 17:06:39 UTC
Where is the Fedora 9 bug?

Comment 20 Eugene Teo (Security Response) 2008-12-10 01:35:28 UTC
(In reply to comment #19)
> Where is the Fedora 9 bug?

Don't think there is one. Please create it if needed. Thanks Chuck.

Comment 22 Fedora Update System 2008-12-17 16:21:09 UTC
kernel-2.6.27.9-159.fc10 has been submitted as an update for Fedora 10.
http://admin.fedoraproject.org/updates/kernel-2.6.27.9-159.fc10

Comment 23 Fedora Update System 2008-12-17 16:22:15 UTC
kernel-2.6.27.9-73.fc9 has been submitted as an update for Fedora 9.
http://admin.fedoraproject.org/updates/kernel-2.6.27.9-73.fc9

Comment 24 Fedora Update System 2008-12-24 18:45:19 UTC
kernel-2.6.27.9-159.fc10 has been pushed to the Fedora 10 stable repository.  If problems still persist, please make note of it in this bug report.

Comment 25 Fedora Update System 2008-12-24 18:47:36 UTC
kernel-2.6.27.9-73.fc9 has been pushed to the Fedora 9 stable repository.  If problems still persist, please make note of it in this bug report.

Comment 26 Fedora Update System 2009-01-05 14:26:30 UTC
kernel-2.6.26.8-57.fc8 has been submitted as an update for Fedora 8.
http://admin.fedoraproject.org/updates/kernel-2.6.26.8-57.fc8

Comment 27 Fedora Update System 2009-01-07 09:17:37 UTC
kernel-2.6.26.8-57.fc8 has been pushed to the Fedora 8 stable repository.  If problems still persist, please make note of it in this bug report.

Comment 30 Vincent Danen 2010-12-21 17:54:25 UTC
This was addressed via:

Red Hat Enterprise Linux (v. 5.2.z server) (RHSA-2009:0021)
MRG Realtime for RHEL 5 Server (RHSA-2009:0053)
Red Hat Enterprise Linux version 5 (RHSA-2009:0225)


Note You need to log in before you can comment on or make changes to this bug.