[lkml]   [2009]   [Jul]   [17]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
Messages in this thread
    Patch in this message
    Subject[patch 2/8] personality: fix PER_CLEAR_ON_SETID (CVE-2009-1895)
    2.6.27-stable review patch.  If anyone has any objections, please let us know.


    From: Julien Tinnes <>

    commit f9fabcb58a6d26d6efde842d1703ac7cfa9427b6 upstream.

    We have found that the current PER_CLEAR_ON_SETID mask on Linux doesn't
    include neither ADDR_COMPAT_LAYOUT, nor MMAP_PAGE_ZERO.


    We believe it is important to add MMAP_PAGE_ZERO, because by using this
    personality it is possible to have the first page mapped inside a
    process running as setuid root. This could be used in those scenarios:

    - Exploiting a NULL pointer dereference issue in a setuid root binary
    - Bypassing the mmap_min_addr restrictions of the Linux kernel: by
    running a setuid binary that would drop privileges before giving us
    control back (for instance by loading a user-supplied library), we
    could get the first page mapped in a process we control. By further
    using mremap and mprotect on this mapping, we can then completely
    bypass the mmap_min_addr restrictions.

    Less importantly, we believe ADDR_COMPAT_LAYOUT should also be added
    since on x86 32bits it will in practice disable most of the address
    space layout randomization (only the stack will remain randomized).

    Signed-off-by: Julien Tinnes <>
    Signed-off-by: Tavis Ormandy <>
    Acked-by: Christoph Hellwig <>
    Acked-by: Kees Cook <>
    Acked-by: Eugene Teo <>
    [ Shortened lines and fixed whitespace as per Christophs' suggestion ]
    Signed-off-by: Linus Torvalds <>
    Signed-off-by: Greg Kroah-Hartman <>

    include/linux/personality.h | 5 ++++-
    1 file changed, 4 insertions(+), 1 deletion(-)

    --- a/include/linux/personality.h
    +++ b/include/linux/personality.h
    @@ -40,7 +40,10 @@ enum {
    * Security-relevant compatibility flags that must be
    * cleared upon setuid or setgid exec:

    * Personality types.

     \ /
      Last update: 2009-07-17 22:45    [W:0.021 / U:2.756 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site