lkml.org 
[lkml]   [2011]   [Jul]   [8]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    SubjectRe: [Security] [PATCH] xtensa: prevent arbitrary read in ptrace
    From
    Date
    Sorry for the top post and any email mangling (mobile).

    I only used EIO to mirror the existing behavior in ptrace_getxregs(). EFAULT seems better.

    -Dan

    ------Original Message------
    From: Andrew Morton
    To: Dan Rosenberg
    Cc: chris@zankel.net
    Cc: security@kernel.org
    Cc: linux-kernel@vger.kernel.org
    Cc: Oleg Nesterov
    Subject: Re: [Security] [PATCH] xtensa: prevent arbitrary read in ptrace
    Sent: Jul 8, 2011 2:27 PM

    On Thu, 07 Jul 2011 20:03:54 -0400
    Dan Rosenberg <drosenberg@vsecurity.com> wrote:

    > Prevent an arbitrary kernel read. Check the user pointer with
    > access_ok() before copying data in.
    >
    > Signed-off-by: Dan Rosenberg <drosenberg@vsecurity.com>
    > Cc: stable@kernel.org
    > ---
    > arch/xtensa/kernel/ptrace.c | 3 +++
    > 1 files changed, 3 insertions(+), 0 deletions(-)
    >
    > diff --git a/arch/xtensa/kernel/ptrace.c b/arch/xtensa/kernel/ptrace.c
    > index c72c947..ddce75e 100644
    > --- a/arch/xtensa/kernel/ptrace.c
    > +++ b/arch/xtensa/kernel/ptrace.c
    > @@ -147,6 +147,9 @@ int ptrace_setxregs(struct task_struct *child, void __user *uregs)
    > elf_xtregs_t *xtregs = uregs;
    > int ret = 0;
    >
    > + if (!access_ok(VERIFY_READ, uregs, sizeof(elf_xtregs_t)))
    > + return -EIO;

    This should be -EFAULT, methinks?

    > +
    > #if XTENSA_HAVE_COPROCESSORS
    > /* Flush all coprocessors before we overwrite them. */
    > coprocessor_flush_all(ti);
    \
     
     \ /
      Last update: 2011-07-08 20:49    [W:0.020 / U:93.368 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site