All of lore.kernel.org
 help / color / mirror / Atom feed
From: Vasiliy Kulikov <segoon@openwall.com>
To: kernel-hardening@lists.openwall.com
Subject: Re: [kernel-hardening] RLIMIT_NPROC check in set_user()
Date: Mon, 11 Jul 2011 22:56:35 +0400	[thread overview]
Message-ID: <20110711185635.GA2072@albatros> (raw)
In-Reply-To: <20110711165900.GA14319@openwall.com>

Solar,

On Mon, Jul 11, 2011 at 20:59 +0400, Solar Designer wrote:
> On Wed, Jul 06, 2011 at 10:59:32PM +0400, Vasiliy Kulikov wrote:
> > On Wed, Jul 06, 2011 at 11:01 -0700, Linus Torvalds wrote:
> > > My reaction is: "let's just remote the crazy check from set_user()
> > > entirely".
> > 
> > Honestly, I didn't expect such a positive reaction from you in the first
> > reply :)
> 
> After this is taken care of, please also consider other ways set*id()
> syscalls might fail on errors unrelated to the process possessing
> appropriate privileges.  IIRC, set_user() could also fail when it's not
> able to allocate an instance of "struct user" - unlikely, but possible.
> I think the process must be killed on those errors.  There's no better
> action to take on them.

As Spender has noticed, small allocations may not fail, they are forced
to use __GFP_NOFAIL.


/*
 * PAGE_ALLOC_COSTLY_ORDER is the order at which allocations are deemed
 * costly to service.  That is between allocation orders which should
 * coelesce naturally under reasonable reclaim pressure and those which
 * will not.
 */
#define PAGE_ALLOC_COSTLY_ORDER 3

int should_alloc_retry() {

...
	/*
	 * In this implementation, order <= PAGE_ALLOC_COSTLY_ORDER
	 * means __GFP_NOFAIL, but that may not be true in other
	 * implementations.
	 */
	if (order <= PAGE_ALLOC_COSTLY_ORDER)
		return 1;
...
}

So, all these allocations are fail-safe.  I see no reasons to fail for
these privilege dropping functions.

Thanks,

-- 
Vasiliy

  reply	other threads:[~2011-07-11 18:56 UTC|newest]

Thread overview: 76+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-06-12 13:09 [kernel-hardening] RLIMIT_NPROC check in set_user() Vasiliy Kulikov
2011-06-12 13:09 ` Vasiliy Kulikov
2011-07-06 17:36 ` [kernel-hardening] " Vasiliy Kulikov
2011-07-06 17:36   ` Vasiliy Kulikov
2011-07-06 18:01   ` [kernel-hardening] " Linus Torvalds
2011-07-06 18:01     ` Linus Torvalds
2011-07-06 18:59     ` [kernel-hardening] " Vasiliy Kulikov
2011-07-07  7:56       ` Vasiliy Kulikov
2011-07-07  8:19         ` Vasiliy Kulikov
2011-07-12 13:27           ` [kernel-hardening] [PATCH] move RLIMIT_NPROC check from set_user() to do_execve_common() Vasiliy Kulikov
2011-07-12 13:27             ` Vasiliy Kulikov
2011-07-12 21:16             ` [kernel-hardening] " Linus Torvalds
2011-07-12 21:16               ` Linus Torvalds
2011-07-12 23:14               ` [kernel-hardening] " NeilBrown
2011-07-12 23:14                 ` NeilBrown
2011-07-13  6:31                 ` [kernel-hardening] " Solar Designer
2011-07-13  6:31                   ` Solar Designer
2011-07-13  7:06                   ` [kernel-hardening] " NeilBrown
2011-07-13  7:06                     ` NeilBrown
2011-07-13 20:46                     ` [kernel-hardening] " Linus Torvalds
2011-07-13 20:46                       ` Linus Torvalds
2011-07-14  0:11                       ` [kernel-hardening] " James Morris
2011-07-14  0:11                         ` James Morris
2011-07-14  1:27                         ` [kernel-hardening] " NeilBrown
2011-07-14  1:27                           ` NeilBrown
2011-07-14 15:06                           ` [kernel-hardening] " Solar Designer
2011-07-14 15:06                             ` Solar Designer
2011-07-15  3:30                             ` [kernel-hardening] " NeilBrown
2011-07-15  3:30                               ` NeilBrown
2011-07-15  5:35                               ` [kernel-hardening] " Willy Tarreau
2011-07-15  5:35                                 ` Willy Tarreau
2011-07-15  6:31                               ` [kernel-hardening] " Vasiliy Kulikov
2011-07-15  7:06                                 ` NeilBrown
2011-07-15  7:06                                   ` NeilBrown
2011-07-15  7:38                                   ` Vasiliy Kulikov
2011-07-15 13:04                                     ` Solar Designer
2011-07-15 13:04                                       ` Solar Designer
2011-07-15 13:58                                     ` [kernel-hardening] " Stephen Smalley
2011-07-15 15:26                                       ` Vasiliy Kulikov
2011-07-15 19:54                                         ` Stephen Smalley
2011-07-21  4:09                                           ` NeilBrown
2011-07-21 12:48                                             ` Solar Designer
2011-07-21 18:21                                               ` Linus Torvalds
2011-07-21 19:39                                                 ` [kernel-hardening] " Solar Designer
2011-07-25 17:14                                                   ` Vasiliy Kulikov
2011-07-25 17:14                                                     ` Vasiliy Kulikov
2011-07-25 23:40                                                     ` [kernel-hardening] " Solar Designer
2011-07-26  0:47                                                       ` NeilBrown
2011-07-26  1:16                                                         ` Solar Designer
2011-07-26  4:11                                                           ` NeilBrown
2011-07-26 14:48                                                             ` [kernel-hardening] [patch v2] " Vasiliy Kulikov
2011-07-26 14:48                                                               ` Vasiliy Kulikov
2011-07-27  2:15                                                               ` [kernel-hardening] " NeilBrown
2011-07-27  2:15                                                                 ` NeilBrown
2011-07-29  7:07                                                                 ` [kernel-hardening] " Vasiliy Kulikov
2011-07-29  8:06                                                               ` Vasiliy Kulikov
2011-07-29  8:06                                                                 ` Vasiliy Kulikov
2011-07-29  8:11                                                                 ` [kernel-hardening] [patch v3] " Vasiliy Kulikov
2011-07-29  8:11                                                                   ` Vasiliy Kulikov
2011-07-29  8:17                                                                   ` [kernel-hardening] " James Morris
2011-07-29  8:17                                                                     ` James Morris
2011-07-24 14:32                                               ` [kernel-hardening] [PATCH] " Solar Designer
2011-07-24 18:02                                                 ` Vasiliy Kulikov
2011-07-14  1:30                         ` [kernel-hardening] " KOSAKI Motohiro
2011-07-14  1:30                           ` KOSAKI Motohiro
2011-07-13  5:36             ` [kernel-hardening] " KOSAKI Motohiro
2011-07-13  5:36               ` KOSAKI Motohiro
2011-07-14 15:22             ` [kernel-hardening] " Solar Designer
2011-07-14 15:55               ` Vasiliy Kulikov
2011-07-11 16:59       ` [kernel-hardening] RLIMIT_NPROC check in set_user() Solar Designer
2011-07-11 18:56         ` Vasiliy Kulikov [this message]
2011-07-13  9:48           ` Solar Designer
2011-07-14 14:15             ` Solar Designer
2011-07-14 14:27               ` Vasiliy Kulikov
2011-07-14 15:14                 ` Solar Designer
2011-07-14 16:31                   ` [kernel-hardening] compile time warnings in libc for setuid() unused result (was: RLIMIT_NPROC check in set_user()) Vasiliy Kulikov

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20110711185635.GA2072@albatros \
    --to=segoon@openwall.com \
    --cc=kernel-hardening@lists.openwall.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.