All of lore.kernel.org
 help / color / mirror / Atom feed
From: Takashi Iwai <tiwai@suse.de>
To: ebiederm@xmission.com (Eric W. Biederman)
Cc: linux-kernel@vger.kernel.org
Subject: Re: [CFT][PATCH] ptrace: Properly initialize ptracer_cred on fork
Date: Tue, 23 May 2017 11:16:30 +0200	[thread overview]
Message-ID: <s5hefvgorv5.wl-tiwai@suse.de> (raw)
In-Reply-To: <s5ha864qg3v.wl-tiwai@suse.de>

On Tue, 23 May 2017 07:47:32 +0200,
Takashi Iwai wrote:
> 
> On Mon, 22 May 2017 23:04:48 +0200,
> Eric W. Biederman wrote:
> > 
> > 
> > When I introduced ptracer_cred I failed to consider the weirdness of
> > fork where the task_struct copies the old value by default.  This
> > winds up leaving ptracer_cred set even when a process forks and
> > the child process does not wind up being ptraced.
> > 
> > Because ptracer_cred is not set on non-ptraced processes whose
> > parents were ptraced this has broken the ability of the enlightenment
> > window manager to start setuid children.
> > 
> > Fix this by properly initializing ptracer_cred in ptrace_init_task
> > 
> > This must be done with a little bit of care to preserve the current value
> > of ptracer_cred when ptrace carries through fork.  Re-reading the
> > ptracer_cred from the ptracing process at this point is inconsistent
> > with how PT_PTRACE_CAP has been maintained all of these years.
> > 
> > Fixes: 64b875f7ac8a ("ptrace: Capture the ptracer's creds not PT_PTRACE_CAP")
> > Signed-off-by: "Eric W. Biederman" <ebiederm@xmission.com>
> > ---
> > 
> > If I could get some folks to test and verify this fixes the
> > enlightenment issue I would really appreciate it.
> 
> This seems giving a compile warning and it becomes error in the
> following:
> 
> In file included from ./include/linux/mutex.h:13:0,
>                  from ./include/linux/kernfs.h:13,
>                  from ./include/linux/sysfs.h:15,
>                  from ./include/linux/kobject.h:21,
>                  from ./include/linux/device.h:17,
>                  from drivers/gpu/drm/i915/gvt/kvmgt.c:32:
> ./include/linux/ptrace.h: In function ‘ptrace_init_task’:
> ./arch/x86/include/asm/current.h:17:17: error: passing argument 3 of ‘__ptrace_link’ discards ‘const’ qualifier from pointer target type [-Werror=discarded-qualifiers]
>  #define current get_current()
>                  ^
> ./include/linux/ptrace.h:210:41: note: in expansion of macro ‘current’
>    __ptrace_link(child, current->parent, current->ptracer_cred);
>                                          ^~~~~~~
> In file included from ./arch/x86/include/asm/stacktrace.h:10:0,
>                  from ./arch/x86/include/asm/perf_event.h:246,
>                  from ./include/linux/perf_event.h:24,
>                  from ./arch/x86/include/asm/kvm_host.h:24,
>                  from ./include/linux/kvm_host.h:37,
>                  from drivers/gpu/drm/i915/gvt/kvmgt.c:41:
> ./include/linux/ptrace.h:56:13: note: expected ‘struct cred *’ but argument is of type ‘const struct cred *’
>  extern void __ptrace_link(struct task_struct *child,
>              ^~~~~~~~~~~~~
> cc1: all warnings being treated as errors

Through a quick test on VM (fixed patch by adding const to
__ptrace_link() argument), it seems working fine.

Tested-by: Takashi Iwai <tiwai@suse.de>


thanks,

Takashi

  reply	other threads:[~2017-05-23  9:16 UTC|newest]

Thread overview: 9+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-05-22  9:03 [4.11 regression] su / sudo doesn't work when enlightenment is running as the window manager Takashi Iwai
     [not found] ` <87r2zgtzbi.fsf@xmission.com>
2017-05-22 20:48   ` Takashi Iwai
2017-05-22 21:04   ` [CFT][PATCH] ptrace: Properly initialize ptracer_cred on fork Eric W. Biederman
2017-05-23  5:47     ` Takashi Iwai
2017-05-23  9:16       ` Takashi Iwai [this message]
2017-05-23 12:40         ` Eric W. Biederman
2017-05-23 12:50           ` Takashi Iwai
2017-05-23  8:49     ` kbuild test robot
2017-05-23  8:51     ` kbuild test robot

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=s5hefvgorv5.wl-tiwai@suse.de \
    --to=tiwai@suse.de \
    --cc=ebiederm@xmission.com \
    --cc=linux-kernel@vger.kernel.org \
    /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.