|
|||||||||||
|
Re: COSEINC Linux Advisory #1: Linux Kernel Parent Process Death Signal Vulnerability
From: Glynn Clements <glynn(at)gclements.plus.com>
Date: Wed Aug 15 2007 - 11:23:07 EDT Dan Yefimov wrote: > > An unprivileged local user may send arbitrary signal to a child process > I'm not sure this is a real security issue. If some process has the same AIUI, the issue is that the unprivileged process gets to choose the signal. > If setuid program just Ordinarily, a process can assume that certain signals (those which can only be generated by kill()) can only be received as a result of an action by a sufficiently privileged process. Also, other signals which could be triggered by the predecessor (e.g. SIGALRM triggered due to alarm() followed by exec()) can normally be prevented by specific means (e.g. resetting any outstanding timers). This bug means that such steps are insufficient. A consequence of this bug is that no signal can be trusted. Also, if it's possible to set the signal to one which cannot be blocked (SIGKILL, SIGSTOP), there's not much that the callee can do about it. > From another hand, prctl() isn't specified by any standard; it's Linux-specific. That's a significant part of the problem: code which isn't specifically written for Linux isn't going to take steps to mitigate this issue (e.g. reset the parent death signal). But the suggestion that this should be reset on exec() (at least for a suid/sgid binary) is sound, IMHO. Moreover, I would suggest that exec()ing a suid/sgid binary should reset *everything* which is not explicitly specified as being preserved. -- Glynn ClementsReceived on Wed Aug 15 11:47:23 2007 This archive was generated by hypermail 2.1.8 : Sun Oct 28 2007 - 06:12:00 EDT |
||||||||||
|
|||||||||||