[PATCH 0/4] CRASH_ZEROIZE: Wipe secrets before kdump
Baoquan He
baoquan.he at linux.dev
Sat Aug 1 14:03:22 UTC 2026
On 07/31/26 at 05:46pm, Jan Sebastian Götte wrote:
> I'm using linux on an embedded target in a Hardware Security Module-like
> application. One requirement is that I want the system to be able to
> quickly erase its memory when it detects physical tampering. I'm
> approaching that by using kdump to load into a small payload that
> instead of dumping RAM, erases RAM from start to end. However, writing
> all of RAM, especially on an embedded target, is rather slow. For this
> reason, I propose the mechanism in this patch series:
>
> Add CONFIG_CRASH_ZEROIZE (default off), which when enabled makes various
> subsystems handling secret data do a quick, targeted wipe of these
> secrets before kdump. This behavior might also be interesting in cases
> where you run a normal kdump kernel but you still want to keep things
> like fde crypto keys out of these dumps.
Please check below patchset, you both seem to have the similar
requirement. Please go there to discuss.
[RFC PATCH 0/4] panic: a pre kdump notifier list for hypervisor upcalls
Note that we usually dont' want to run a lot of work after panic and
before jumping into kdump kernel.
>
> CONFIG_CRASH_ZEROIZE is a best effort, defense in depth solution. There
> are circumstances, such as when a panic is triggered after memory
> corruption, or when a panic interrupts some operation that mutates data
> structures under locks, when the kernel cannot safely wipe some memory
> areas. The handlers proposed in this series will just print a warning
> and skip the affected areas in this case.
>
> This series introduces two handlers as a starting point: One for kernel
> keyrings, and one for secretmem. Future places where such handlers could
> be added would be for example drivers for crypto accelerators.
>
> The patch series applies on top of linux-next but should work on 7.0.0,
> too. I've tested the patches on a Arduino uno Q (Qualcomm QRB2210)
> embedded target.
>
> Jan Sebastian Götte (4):
> of/kexec: fix typo in comment (usable-memory-range)
> kexec: add CRASH_ZEROIZE to wipe secrets before kdump
> mm/secretmem: zeroize secret pages before kdump
> security/keys: zeroize key payloads before kdump
>
> drivers/of/kexec.c | 2 +-
> include/linux/crash_core.h | 5 +++
> include/linux/key-type.h | 9 ++++
> kernel/Kconfig.kexec | 8 ++++
> kernel/crash_core.c | 18 ++++++++
> mm/secretmem.c | 50 +++++++++++++++++++++++
> security/keys/big_key.c | 15 +++++++
> security/keys/encrypted-keys/encrypted.c | 12 ++++++
> security/keys/key.c | 44 ++++++++++++++++++++
> security/keys/trusted-keys/trusted_core.c | 14 +++++++
> security/keys/user_defined.c | 11 +++++
> 11 files changed, 187 insertions(+), 1 deletion(-)
>
> --
> 2.53.0
>
More information about the Linux-security-module-archive
mailing list