Re: [PATCH v4 1/7] kexec_file: allow to place kexec_buf randomly

From: Coiby Xu
Date: Fri Jun 07 2024 - 08:30:14 EST


On Tue, Jun 04, 2024 at 03:41:35PM +0800, Baoquan He wrote:
On 05/23/24 at 01:04pm, Coiby Xu wrote:
Currently, kexec_buf is placed in order which means for the same
machine, the info in the kexec_buf is always located at the same
position each time the machine is booted. This may cause a risk for
sensitive information like LUKS volume key. Now struct kexec_buf has a
new field random which indicates it's supposed to be placed in a random
position.

Suggested-by: Jan Pazdziora <jpazdziora@xxxxxxxxxx>
Signed-off-by: Coiby Xu <coxu@xxxxxxxxxx>
---
include/linux/kexec.h | 2 ++
kernel/kexec_file.c | 15 +++++++++++++++
2 files changed, 17 insertions(+)

diff --git a/include/linux/kexec.h b/include/linux/kexec.h
index f0e9f8eda7a3..cc81b8a903ab 100644
--- a/include/linux/kexec.h
+++ b/include/linux/kexec.h
[...]
@@ -445,6 +456,8 @@ static int locate_mem_hole_top_down(unsigned long start, unsigned long end,

temp_end = min(end, kbuf->buf_max);
temp_start = temp_end - kbuf->memsz + 1;
+ if (kbuf->random)
+ temp_start = kexec_random_start(temp_start, temp_end);

As we discussed before, this need be limited in kdump scope, seems v4
doesn't include the change.

Yes, v4 was sent mainly for you to review the patches by applying to
latest Linus tree. v5 now include the change.

--
Best regards,
Coiby