Re: [PATCH 7/9] Pmalloc Rare Write: modify selected pools

From: Matthew Wilcox
Date: Tue Apr 24 2018 - 10:44:22 EST


On Tue, Apr 24, 2018 at 02:32:36PM +0200, lazytyped wrote:
> On 4/24/18 1:50 PM, Matthew Wilcox wrote:
> > struct modifiable_data {
> > struct immutable_data *d;
> > ...
> > };
> >
> > Then allocate a new pool, change d and destroy the old pool.
>
> With the above, you have just shifted the target of the arbitrary write
> from the immutable data itself to the pointer to the immutable data, so
> got no security benefit.

There's always a pointer to the immutable data. How do you currently
get to the selinux context? file->f_security. You can't make 'file'
immutable, so file->f_security is the target of the arbitrary write.
All you can do is make life harder, and reduce the size of the target.

> The goal of the patch is to reduce the window when stuff is writeable,
> so that an arbitrary write is likely to hit the time when data is read-only.

Yes, reducing the size of the target in time as well as bytes. This patch
gives attackers a great roadmap (maybe even gadget) to unprotecting
a pool.