[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <aXH8wQbyjFqlueNS@kernel.org>
Date: Thu, 22 Jan 2026 12:32:33 +0200
From: Mike Rapoport <rppt@...nel.org>
To: Maciej Wieczor-Retman <m.wieczorretman@...me>
Cc: Andrew Morton <akpm@...ux-foundation.org>,
Uladzislau Rezki <urezki@...il.com>,
Maciej Wieczor-Retman <maciej.wieczor-retman@...el.com>,
Alexander Potapenko <glider@...gle.com>, linux-mm@...ck.org,
linux-kernel@...r.kernel.org
Subject: Re: [PATCH v9 06/13] mm/execmem: Untag addresses in EXECMEM_ROX
related pointer arithmetic
On Tue, Jan 20, 2026 at 02:41:43PM +0000, Maciej Wieczor-Retman wrote:
> From: Maciej Wieczor-Retman <maciej.wieczor-retman@...el.com>
>
> ARCH_HAS_EXECMEM_ROX was re-enabled in x86 at Linux 6.14 release.
> vm_reset_perms() calculates range's start and end addresses using min()
> and max() functions. To do that it compares pointers but, with KASAN
> software tags mode enabled, some are tagged - addr variable is, while
> start and end variables aren't. This can cause the wrong address to be
> chosen and result in various errors in different places.
>
> Reset tags in the address used as function argument in min(), max().
>
> execmem_cache_add() adds tagged pointers to a maple tree structure,
> which then are incorrectly compared when walking the tree. That results
> in different pointers being returned later and page permission violation
> errors panicking the kernel.
>
> Reset tag of the address range inserted into the maple tree inside
> execmem_vmalloc() which then gets propagated to execmem_cache_add().
>
> Signed-off-by: Maciej Wieczor-Retman <maciej.wieczor-retman@...el.com>
> Acked-by: Alexander Potapenko <glider@...gle.com>
Acked-by: Mike Rapoport (Microsoft) <rppt@...nel.org>
--
Sincerely yours,
Mike.
Powered by blists - more mailing lists