• Minchan Kim's avatar
    mm/madvise: remove racy mm ownership check · a68a0262
    Minchan Kim authored
    Jann spotted the security hole due to race of mm ownership check.
    
    If the task is sharing the mm_struct but goes through execve() before
    mm_access(), it could skip process_madvise_behavior_valid check.  That
    makes *any advice hint* to reach into the remote process.
    
    This patch removes the mm ownership check.  With it, it will lose the
    ability that local process could give *any* advice hint with vector
    interface for some reason (e.g., performance).  Since there is no
    concrete example in upstream yet, it would be better to remove the
    abiliity at this moment and need to review when such new advice comes
    up.
    
    Fixes: ecb8ac8b ("mm/madvise: introduce process_madvise() syscall: an external memory hinting API")
    Reported-by: default avatarJann Horn <jannh@google.com>
    Suggested-by: default avatarJann Horn <jannh@google.com>
    Signed-off-by: default avatarMinchan Kim <minchan@kernel.org>
    Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
    a68a0262
madvise.c 30.9 KB