Re: [PATCH RFC] mm: protect suid binaries against rowhammer with copy-on-read mappings

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Wed, Mar 18, 2015 at 5:11 PM, Dave Hansen <dave.hansen@xxxxxxxxx> wrote:
> On 03/18/2015 01:30 AM, Konstantin Khlebnikov wrote:
>> +             /*
>> +              * Read-only SUID/SGID binares are mapped as copy-on-read
>> +              * this protects them against exploiting with Rowhammer.
>> +              */
>> +             if (!(file->f_mode & FMODE_WRITE) &&
>> +                 ((inode->i_mode & S_ISUID) || ((inode->i_mode & S_ISGID) &&
>> +                         (inode->i_mode & S_IXGRP)))) {
>> +                     vm_flags &= ~(VM_SHARED | VM_MAYSHARE);
>> +                     vm_flags |= VM_COR;
>> +             }
>
> I think we probably need to come to _some_ sort of understanding in the
> kernel of how much we are willing to do to thwart these kinds of
> attacks.  I suspect it's a very deep rabbit hole.
>
> For this particular case, I don't see how this would be effective.  The
> existing exploit which you reference attacks PTE pages which are
> unmapped in to the user address space.  I'm confused how avoiding
> mapping a page in to an attacker's process can keep it from being exploited.
>
> Right now, there's a relatively small number of pages that will get
> COW'd for a SUID binary.  This greatly increases the number which could
> allow spraying of these (valuable) copy-on-read pages.

Yeah, on second thought that copy-on-read gives the same security
level as hiding pfns from userspace. Sorry for the noise.

It seems the only option is memory zoning: kernel should allocate all
normal memory for userspace from isolated area which is kept far far
away from important data.

--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@xxxxxxxxx.  For more info on Linux MM,
see: http://www.linux-mm.org/ .
Don't email: <a href=mailto:"dont@xxxxxxxxx";> email@xxxxxxxxx </a>




[Index of Archives]     [Linux ARM Kernel]     [Linux ARM]     [Linux Omap]     [Fedora ARM]     [IETF Annouce]     [Bugtraq]     [Linux]     [Linux OMAP]     [Linux MIPS]     [ECOS]     [Asterisk Internet PBX]     [Linux API]