Bug 174078

Summary: [RHEL4] CVE-2005-3784 auto-reap DoS
Product: Red Hat Enterprise Linux 4 Reporter: Mark J. Cox <mjc>
Component: kernelAssignee: Peter Staubach <staubach>
Status: CLOSED ERRATA QA Contact: Brian Brock <bbrock>
Severity: high Docs Contact:
Priority: medium    
Version: 4.0CC: jbaron
Target Milestone: ---Keywords: Security
Target Release: ---   
Hardware: All   
OS: Linux   
Whiteboard: source=vendorsec,reported=20051123,public=20051110,impact=important
Fixed In Version: RHSA-2006-0101 Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2006-01-17 08:35:15 UTC Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Bug Depends On:    
Bug Blocks: 168430    
Attachments:
Description Flags
Proposed patch none

Description Mark J. Cox 2005-11-24 10:54:33 UTC
The auto-reap of child processes in Linux kernel 2.6 before
        2.6.15 includes processes with ptrace attached, which leads to
        a dangling ptrace reference and allows local users to cause a
        denial of service (crash).

Fixed upstream by
http://linux.bkbits.net:8080/linux-2.6/cset@437a0568g4lPMynwmUw1ajvC2ZroDg

Comment 3 Peter Staubach 2005-12-16 19:35:09 UTC
Created attachment 122347 [details]
Proposed patch

Comment 5 Roland McGrath 2006-01-05 01:28:38 UTC
I don't know of an existing test case unless one was posted on lkml.
The way to produce the situation is to have a real parent that has set SIGCHLD
to SIG_IGN, a child of that parent, a ptracer tracing the child, and then have
the child die (e.g. kill -9 it).  The bug here means that the tracer will not
get a SIGCHLD, and the child will be reaped while the tracer is still attached.
 Note that if the tracer is already blocked in a wait* syscall, it will be woken
up regardless of the bug, and so that might make it respond quickly enough to
mask the effects of the bug.  So, do not test using a tracer already blocked in
wait* when the child dies; this is what the obvious sort of test using strace
will do, and it may not be sufficient to clearly diagnose the bug.

Comment 10 Red Hat Bugzilla 2006-01-17 08:35:15 UTC
An advisory has been issued which should help the problem
described in this bug report. This report is therefore being
closed with a resolution of ERRATA. For more information
on the solution and/or where to find the updated files,
please follow the link below. You may reopen this bug report
if the solution does not work for you.

http://rhn.redhat.com/errata/RHSA-2006-0101.html