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.