lkml.org 
[lkml]   [2012]   [Mar]   [11]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    Date
    From
    SubjectRe: [PATCH 8/9] proc: protect /proc/<pid>/{environ,pagemap} across execve
    On Sun, Mar 11, 2012 at 12:25:18AM +0100, Djalal Harouni wrote:
    > The /proc/<pid>/{environ,pagemap} are sensitive files which must be
    > protected across execve to avoid information leaks.
    >
    > These files are protected by attaching them to their task at open time by
    > saving the exec_id of the target task, this way in read we just compare
    > the target task's exec_id and the previously saved exec_id of the
    > proc_file_private struct, in other words we just bind these files to their
    > appropriate process image at open time. We do this since we are able to do
    > proper permission checks (ptrace) at each syscall, so we do not care about
    > the reader.
    >
    > Another important rule is to set the exec_id of the target task before the
    > permission checks at open, this way we do not race against target task
    > execve, and it will be more effective if the exec_id check at read/write
    > times are delayed as much as possible to be sure that the target task do
    > not change during execve.
    >
    > This patch adds the open file_operation to the
    > /proc/<pid>/{environ,pagemap} so we are able to set the exec_id of the
    > target task and to do the appropriate permission checks. The exec_id check
    > is done in the related read file_operation.

    ->open is duplicated.

    > --- a/fs/proc/base.c
    > +++ b/fs/proc/base.c
    > +static int environ_open(struct inode *inode, struct file *filp)


    \
     
     \ /
      Last update: 2012-03-11 09:09    [W:4.493 / U:0.004 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site