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.