2007-08-17 19:46:42

by Marcel Holtmann

[permalink] [raw]
Subject: [PATCH] Reset current->pdeath_signal on SUID binary execution

Hi Linus,

the attached patch fixes a flaw in the "parent process death signal"
when executing SUID binaries. An unprivileged user may send arbitrary
signal to a child process even if it is running with higher privileges.

The idea to fix this issue is to reset pdeath_signal not only on fork,
but also on the execution of a SUID binary.

Michael, if we fix it this way, then the prctl() manual page should
reflect that behavior.

>From comments it seems that we have to also reset pdeath_signal inside
LSM when it comes to capability-raised executes, but I must admit that I
got lost there.

Regards

Marcel


Attachments:
patch-reset-pdeath-signal-on-suid (1.69 kB)

2007-08-23 08:21:41

by Marcel Holtmann

[permalink] [raw]
Subject: Re: [PATCH] Reset current->pdeath_signal on SUID binary execution

Hi,

> the attached patch fixes a flaw in the "parent process death signal"
> when executing SUID binaries. An unprivileged user may send arbitrary
> signal to a child process even if it is running with higher privileges.
>
> The idea to fix this issue is to reset pdeath_signal not only on fork,
> but also on the execution of a SUID binary.
>
> Michael, if we fix it this way, then the prctl() manual page should
> reflect that behavior.

the patch has been merged into 2.4 and 2.6, so the manual page needs an
update at some point.

> From comments it seems that we have to also reset pdeath_signal inside
> LSM when it comes to capability-raised executes, but I must admit that I
> got lost there.

No further comments for this one? I am not familiar enough with it.

Regards

Marcel


2007-08-27 15:34:54

by Michael Kerrisk

[permalink] [raw]
Subject: Re: [PATCH] Reset current->pdeath_signal on SUID binary execution

Marcel,

>> the attached patch fixes a flaw in the "parent process death signal"
>> when executing SUID binaries. An unprivileged user may send arbitrary
>> signal to a child process even if it is running with higher privileges.
>>
>> The idea to fix this issue is to reset pdeath_signal not only on fork,
>> but also on the execution of a SUID binary.
>>
>> Michael, if we fix it this way, then the prctl() manual page should
>> reflect that behavior.
>
> the patch has been merged into 2.4 and 2.6, so the manual page needs an
> update at some point.

I see your patch at:

http://article.gmane.org/gmane.linux.kernel/571635/match=pdeath%5fsignal+suid+binary+execution

But it's not clear to me in which 2.4.x and 2.6.x versions the change occurred (it isn't in 2.6.23-rc3 -- is it scheduled
for 2.6.23-rc4?). Can you enlighten me?

Cheers,

Michael

>> From comments it seems that we have to also reset pdeath_signal inside
>> LSM when it comes to capability-raised executes, but I must admit that I
>> got lost there.
>
> No further comments for this one? I am not familiar enough with it.
>
> Regards
>
> Marcel
>
>

--
Michael Kerrisk
maintainer of Linux man pages Sections 2, 3, 4, 5, and 7

Want to help with man page maintenance? Grab the latest tarball at
http://www.kernel.org/pub/linux/docs/manpages/
read the HOWTOHELP file and grep the source files for 'FIXME'.

2007-08-27 16:29:09

by Linus Torvalds

[permalink] [raw]
Subject: Re: [PATCH] Reset current->pdeath_signal on SUID binary execution



On Mon, 27 Aug 2007, Michael Kerrisk wrote:
>
> But it's not clear to me in which 2.4.x and 2.6.x versions the change
> occurred (it isn't in 2.6.23-rc3 -- is it scheduled for 2.6.23-rc4?).

It's in current -git (commit d2d56c5f51028cb9f3d800882eb6f4cbd3f9099f), so
yes, it will be in -rc4 (which should happen today).

Linus