[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <Z6yuQEYJbmWi8z23@fedora>
Date: Wed, 12 Feb 2025 23:20:48 +0900
From: Harry Yoo <42.hyeyoo@...il.com>
To: GONG Ruiqi <gongruiqi1@...wei.com>
Cc: Christoph Lameter <cl@...ux.com>, Pekka Enberg <penberg@...nel.org>,
David Rientjes <rientjes@...gle.com>,
Joonsoo Kim <iamjoonsoo.kim@....com>,
Andrew Morton <akpm@...ux-foundation.org>,
Vlastimil Babka <vbabka@...e.cz>, Kees Cook <kees@...nel.org>,
Tamas Koczka <poprdi@...gle.com>,
Roman Gushchin <roman.gushchin@...ux.dev>,
Xiu Jianfeng <xiujianfeng@...wei.com>, linux-mm@...ck.org,
linux-hardening@...r.kernel.org, linux-kernel@...r.kernel.org
Subject: Re: [PATCH v3 0/2] Refine kmalloc caches randomization in kvmalloc
On Wed, Feb 12, 2025 at 04:15:03PM +0800, GONG Ruiqi wrote:
> Hi,
>
> v3:
> - move all the way from kmalloc_gfp_adjust to kvrealloc_noprof into
> mm/slub.c
> - some rewording for commit logs
> v2: https://lore.kernel.org/all/20250208014723.1514049-1-gongruiqi1@huawei.com/
> - change the implementation as Vlastimil suggested
> v1: https://lore.kernel.org/all/20250122074817.991060-1-gongruiqi1@huawei.com/
>
> Tamás reported [1] that kmalloc cache randomization doesn't actually
> work for those kmalloc invoked via kvmalloc. For more details, see the
> commit log of patch 2.
>
> The current solution requires a direct call from __kvmalloc_node_noprof
> to __do_kmalloc_node, a static function in a different .c file. As
> suggested by Vlastimil [2], it's achieved by simply moving
> __kvmalloc_node_noprof from mm/util.c to mm/slub.c, together with some
> other functions of the same family.
Hi, GONG!
Sorry for my late review.
This patch series looks good to me (with a nit),
Reviewed-by: Hyeonggon Yoo <42.hyeyoo@...il.com>
Also, I verified that the problem you described exists on slab/for-next,
and the patch series fixes the problem. Please feel free to add,
Tested-by: Hyeonggon Yoo <42.hyeyoo@...il.com>
nit: Does it make sense to call __kvmalloc_node_track_caller_noprof()
instead of __do_kmalloc_node() to avoid bloating the code size?
My simple build test says it saves 1592 bytes:
$ ./scripts/bloat-o-meter slub.o.before slub.o.after
add/remove: 0/1 grow/shrink: 0/1 up/down: 0/-1592 (-1592)
Function old new delta
__kvmalloc_node_noprof.cold 39 - -39
__kvmalloc_node_noprof 1755 202 -1553
Total: Before=79723, After=78131, chg -2.00%
> Link: https://github.com/google/security-research/blob/908d59b573960dc0b90adda6f16f7017aca08609/pocs/linux/kernelctf/CVE-2024-27397_mitigation/docs/exploit.md?plain=1#L259 [1]
> Link: https://lore.kernel.org/all/62044279-0c56-4185-97f7-7afac65ff449@suse.cz/ [2]
--
Harry
Powered by blists - more mailing lists