Thread (43 messages) 43 messages, 5 authors, 2017-09-22

Re: [kernel-hardening] Re: [PATCH v3 03/31] usercopy: Mark kmalloc caches as usercopy caches

From: Kees Cook <hidden>
Date: 2017-09-21 15:40:00
Also in: linux-fsdevel, linux-mm, linux-xfs, lkml

On Thu, Sep 21, 2017 at 8:27 AM, Christopher Lameter [off-list ref] wrote:
On Wed, 20 Sep 2017, Kees Cook wrote:
quoted
--- a/mm/slab.c
+++ b/mm/slab.c
@@ -1291,7 +1291,8 @@ void __init kmem_cache_init(void)
       */
      kmalloc_caches[INDEX_NODE] = create_kmalloc_cache(
                              kmalloc_info[INDEX_NODE].name,
-                             kmalloc_size(INDEX_NODE), ARCH_KMALLOC_FLAGS);
+                             kmalloc_size(INDEX_NODE), ARCH_KMALLOC_FLAGS,
+                             0, kmalloc_size(INDEX_NODE));
      slab_state = PARTIAL_NODE;
      setup_kmalloc_cache_index_table();
Ok this presumes that at some point we will be able to restrict the number
of bytes writeable and thus set the offset and size field to different
values. Is that realistic?

We already whitelist all kmalloc caches (see first patch).

So what is the point of this patch?
The DMA kmalloc caches are not whitelisted:
quoted
                        kmalloc_dma_caches[i] = create_kmalloc_cache(n,
-                               size, SLAB_CACHE_DMA | flags);
+                               size, SLAB_CACHE_DMA | flags, 0, 0);
So this is creating the distinction between the kmallocs that go to
userspace and those that don't. The expectation is that future work
can start to distinguish between "for userspace" and "only kernel"
kmalloc allocations, as is already done here for DMA.

-Kees

-- 
Kees Cook
Pixel Security

--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org.  For more info on Linux MM,
see: http://www.linux-mm.org/ .
Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help