|
Message-ID: <87txig63f4.fsf@shannon.wxcvbn.org> Date: Fri, 23 Aug 2013 13:40:31 +0200 From: jca+dash@...vbn.org (Jérémie Courrèges-Anglas) To: Tavis Ormandy <taviso@...gle.com> Cc: Jilles Tjoelker <jilles@...ck.nl>, Harald van Dijk <harald@...awatt.nl>, dash@...r.kernel.org, oss-security@...ts.openwall.com Subject: Re: [PATCH] implement privmode support in dash Also, Tavis Ormandy <taviso@...gle.com> writes: [...] >> Apart from that, it is better to check the return value from setuid() >> and similar functions. In particular, some versions of Linux may fail >> setuid() for [EAGAIN], leaving the process running with the same >> privileges. > > I don't think this is true anymore, but I have no strong objection to > adding it, so long as it's noted that bash and pdksh do not do this. Just for reference, from mksh: [...] #ifdef SETUID_CAN_FAIL_WITH_EAGAIN /* we don't need to check for other codes, EPERM won't happen */ #define DO_SETUID(func, argvec) do { \ if ((func argvec) && errno == EAGAIN) \ errorf("%s failed with EAGAIN, probably due to a" \ " too low process limit; aborting", #func); \ } while (/* CONSTCOND */ 0) #else #define DO_SETUID(func, argvec) func argvec #endif [...] if (f == FPRIVILEGED && oldval && !newval) { /* Turning off -p? */ /*XXX this can probably be optimised */ kshegid = kshgid = getgid(); #if HAVE_SETRESUGID DO_SETUID(setresgid, (kshegid, kshegid, kshegid)); #if HAVE_SETGROUPS /* setgroups doesn't EAGAIN on Linux */ setgroups(1, &kshegid); #endif DO_SETUID(setresuid, (ksheuid, ksheuid, ksheuid)); #else /* seteuid, setegid, setgid don't EAGAIN on Linux */ ksheuid = kshuid = getuid(); #ifndef MKSH__NO_SETEUGID seteuid(ksheuid); #endif DO_SETUID(setuid, (ksheuid)); #ifndef MKSH__NO_SETEUGID setegid(kshegid); #endif setgid(kshegid); #endif } [...] > Tavis. -- jca | PGP: 0x06A11494 / 61DB D9A0 00A4 67CF 2A90 8961 6191 8FBF 06A1 1494
Powered by blists - more mailing lists
Please check out the Open Source Software Security Wiki, which is counterpart to this mailing list.
Confused about mailing lists and their use? Read about mailing lists on Wikipedia and check out these guidelines on proper formatting of your messages.