lkml.org 
[lkml]   [2023]   [Jan]   [23]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    From
    SubjectRe: [PATCH v5 23/39] mm: Don't allow write GUPs to shadow stack memory
    Date
    * David Hildenbrand:

    > On 19.01.23 22:23, Rick Edgecombe wrote:
    >> The x86 Control-flow Enforcement Technology (CET) feature includes a new
    >> type of memory called shadow stack. This shadow stack memory has some
    >> unusual properties, which requires some core mm changes to function
    >> properly.
    >> Shadow stack memory is writable only in very specific, controlled
    >> ways.
    >> However, since it is writable, the kernel treats it as such. As a result
    >> there remain many ways for userspace to trigger the kernel to write to
    >> shadow stack's via get_user_pages(, FOLL_WRITE) operations. To make this a
    >> little less exposed, block writable GUPs for shadow stack VMAs.
    >> Still allow FOLL_FORCE to write through shadow stack protections, as
    >> it
    >> does for read-only protections.
    >
    > So an app can simply modify the shadow stack itself by writing to
    > /proc/self/mem ?
    >
    > Is that really intended? Looks like security hole to me at first
    > sight, but maybe I am missing something important.

    Isn't it possible to overwrite GOT pointers using the same vector?
    So I think it's merely reflecting the status quo.

    Thanks,
    Florian

    \
     
     \ /
      Last update: 2023-03-26 23:52    [W:4.276 / U:0.224 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site