Re: BEWARE! Linux seteuid is broken!

A.N.Kuznetsov (kuznet@ms2.inr.ac.ru)
Mon, 17 Jun 1996 19:03:16 +0400 (MSD)


>
> It stops lusers killing off nfsd for one

Huh, this Linux bug was discussed in linux-kernel.
I do not know why it was not fixed in standard kernel,
apaprently it was lost.

kernel/exit.c:

int send_sig(unsigned long sig,struct task_struct * p,int priv)
{
if (!p || sig > 32)
return -EINVAL;
if (!priv && ((sig != SIGCONT) || (current->session != p->session)) &&
#ifdef NO_ANK_FIX
(current->euid ^ p->euid) && (current->euid ^ p->uid) &&
(current->uid ^ p->euid) && (current->uid ^ p->uid) &&
#else
(current->uid ^ p->suid) && (current->euid ^ p->uid) &&
(current->uid ^ p->suid) && (current->uid ^ p->uid) &&
#endif
!suser())
return -EPERM;

Alexey Kuznetsov.