arm64: mte: Avoid the racy walk of the vma list during core dump
authorCatalin Marinas <catalin.marinas@arm.com>
Thu, 22 Dec 2022 18:12:51 +0000 (18:12 +0000)
committerWill Deacon <will@kernel.org>
Thu, 5 Jan 2023 15:12:12 +0000 (15:12 +0000)
commit4f4c549feb4ecca95ae9abb88887b941d196f83a
tree5b413e7758916b5f3c7ac6d9e3ddf0b9fae0884c
parent19e183b54528f11fafeca60fc6d0821e29ff281e
arm64: mte: Avoid the racy walk of the vma list during core dump

The MTE coredump code in arch/arm64/kernel/elfcore.c iterates over the
vma list without the mmap_lock held. This can race with another process
or userfaultfd concurrently modifying the vma list. Change the
for_each_mte_vma macro and its callers to instead use the vma snapshot
taken by dump_vma_snapshot() and stored in the cprm object.

Fixes: 6dd8b1a0b6cb ("arm64: mte: Dump the MTE tags in the core file")
Cc: <stable@vger.kernel.org> # 5.18.x
Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
Reported-by: Seth Jenkins <sethjenkins@google.com>
Suggested-by: Seth Jenkins <sethjenkins@google.com>
Cc: Will Deacon <will@kernel.org>
Link: https://lore.kernel.org/r/20221222181251.1345752-4-catalin.marinas@arm.com
Signed-off-by: Will Deacon <will@kernel.org>
arch/arm64/kernel/elfcore.c