mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
From: Jann Horn <jann@thejh.net>
To: "Michael Kerrisk (man-pages)" <mtk.manpages@gmail.com>
Cc: James Morris <jmorris@namei.org>,
	linux-man <linux-man@vger.kernel.org>,
	Stephen Smalley <sds@tycho.nsa.gov>,
	lkml <linux-kernel@vger.kernel.org>,
	Kees Cook <keescook@chromium.org>,
	"Eric W. Biederman" <ebiederm@xmission.com>,
	linux-security-module <linux-security-module@vger.kernel.org>,
	Linux API <linux-api@vger.kernel.org>
Subject: Re: Documenting ptrace access mode checking
Date: Fri, 24 Jun 2016 08:35:27 +0200	[thread overview]
Message-ID: <20160624063527.GA786@pc.thejh.net> (raw)
In-Reply-To: <33209000-3fd4-0b26-f249-eb4e1a9e1651@gmail.com>

[-- Attachment #1: Type: text/plain, Size: 3075 bytes --]

On Thu, Jun 23, 2016 at 09:42:09AM +0200, Michael Kerrisk (man-pages) wrote:
> Hi Jann,
> 
> Thanks for your further review. Follow-up of one point below.
> 
> On 06/23/2016 12:44 AM, Jann Horn wrote:
> >On Wed, Jun 22, 2016 at 09:21:29PM +0200, Michael Kerrisk (man-pages) wrote:
> >>On 06/21/2016 10:55 PM, Jann Horn wrote:
> >>>On Tue, Jun 21, 2016 at 11:41:16AM +0200, Michael Kerrisk (man-pages) wrote:
> 
> [...]
> 
> >>>>      The  algorithm  employed for ptrace access mode checking deter‐
> >>>>      mines whether the calling process is  allowed  to  perform  the
> >>>>      corresponding action on the target process, as follows:
> >>>>
> >>>>      1.  If the calling thread and the target thread are in the same
> >>>>          thread group, access is always allowed.
> >>>>
> >>>>      2.  If the access mode specifies PTRACE_MODE_FSCREDS, then  for
> >>>>          the  check in the next step, employ the caller's filesystem
> >>>>          user ID and group ID (see credentials(7));  otherwise  (the
> >>>>          access  mode  specifies  PTRACE_MODE_REALCREDS, so) use the
> >>>>          caller's real user ID and group ID.
> >>>
> >>>Might want to add a "for historical reasons" or so here.
> >>
> >>Can you be a little more precise about "here", and maybe tell me why
> >>you think it helps?
> >
> >I'm not sure, but it might be a good idea to add something like this at the
> >end of 2.:
> >"(Most other APIs that check one of the caller's UIDs use the effective one.
> >This API uses the real UID instead for historical reasons.)"
> >
> >In my opinion, it is inconsistent to use the real UID/GID here, the
> >effective one would be more appropriate. But since the existing code uses
> >the real UID/GID and that's not a security issue for existing users of
> >the ptrace API, this wasn't changed when I added the REALCREDS/FSCREDS
> >distinction.
> >
> >I think that for a reader, it might help to point out that in most cases,
> >when a process is the subject in an access check, its effective UID/GID
> >are used, and this is (together with kill()) an exception to that rule.
> >But you're the expert on writing documentation, if you think that that's
> >too much detail / confusing here, it probably is.
> 
> Okay -- got it now, I think. I made this text:
> 
>        2.  If the access mode specifies PTRACE_MODE_FSCREDS, then, for
>            the check in the next step, employ the caller's  filesystem
>            UID  and  GID.  (As noted in credentials(7), the filesystem
>            UID and GID almost always have the same values as the  cor‐
>            responding effective IDs.)
> 
>            Otherwise, the access mode specifies PTRACE_MODE_REALCREDS,
>            so use the caller's real UID and GID for the checks in  the
>            next  step.  (Most APIs that check the caller's UID and GID
>            use  the  effective  IDs.   For  historical  reasons,   the
>            PTRACE_MODE_REALCREDS check uses the real IDs instead.)

Thanks, that sounds good.

[-- Attachment #2: Digital signature --]
[-- Type: application/pgp-signature, Size: 819 bytes --]

  reply	other threads:[~2016-06-24  6:35 UTC|newest]

Thread overview: 25+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-06-21  9:41 Michael Kerrisk (man-pages)
2016-06-21 19:55 ` Eric W. Biederman
2016-06-21 20:29   ` Kees Cook
2016-06-21 20:58     ` Eric W. Biederman
2016-06-22 19:20     ` Michael Kerrisk (man-pages)
2016-06-22 19:20   ` Michael Kerrisk (man-pages)
2016-06-23 19:04     ` Eric W. Biederman
2016-06-24  9:57       ` Michael Kerrisk (man-pages)
2016-06-22 21:51   ` Oleg Nesterov
2016-06-23  7:06     ` Michael Kerrisk (man-pages)
2016-06-23 18:56       ` Eric W. Biederman
2016-06-24  8:18         ` Michael Kerrisk (man-pages)
2016-06-21 20:55 ` Jann Horn
2016-06-22 19:21   ` Michael Kerrisk (man-pages)
2016-06-22 21:11     ` Kees Cook
2016-06-23  7:02       ` Michael Kerrisk (man-pages)
2016-06-24  8:40       ` Michael Kerrisk (man-pages)
2016-06-24 15:18         ` Casey Schaufler
2016-06-24 20:07           ` Kees Cook
2016-06-25  7:21           ` Michael Kerrisk (man-pages)
2016-06-22 22:44     ` Jann Horn
2016-06-23  7:42       ` Michael Kerrisk (man-pages)
2016-06-24  6:35         ` Jann Horn [this message]
2016-06-23 18:05 ` Stephen Smalley
2016-06-24  8:33   ` Michael Kerrisk (man-pages)

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=20160624063527.GA786@pc.thejh.net \
    --to=jann@thejh.net \
    --cc=ebiederm@xmission.com \
    --cc=jmorris@namei.org \
    --cc=keescook@chromium.org \
    --cc=linux-api@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-man@vger.kernel.org \
    --cc=linux-security-module@vger.kernel.org \
    --cc=mtk.manpages@gmail.com \
    --cc=sds@tycho.nsa.gov \
    /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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox

Powered by JetHome