Since Linux 6.9, LUKS suspend stopped wiping disk-encryption keys from memory
Since Linux kernel 6.9, the LUKS suspend operation no longer wipes disk-encryption keys from memory, potentially leaving sensitive cryptographic material accessible. This change deviates from previous behavior where keys were cleared during suspend to enhance security.
Background
- LUKS (Linux Unified Key Setup) is the standard mechanism for full-disk encryption on Linux systems. When a system is suspended (e.g., laptop lid closed), Linux normally wipes encryption keys from memory to prevent cold-boot attacks where an attacker with physical access could extract keys from RAM.
- Since Linux kernel version 6.9 (released May 2024), this key-wiping behavior during LUKS suspend has stopped working. The kernel no longer properly clears disk-encryption keys from memory when entering suspend or hibernate.
- This is a security regression: anyone with physical access to a suspended LUKS-encrypted machine could potentially read the keys from memory and decrypt the disk. The bug affects systems running kernel 6.9 or later when using LUKS disk encryption.
- The user reporting this (iblech) is a prominent figure in the Debian community and has historically been diligent about catching and documenting Linux kernel security issues.
- This matters because full-disk encryption's main protection is against physical access attacks; if keys remain in memory during suspend, that protection is substantially weakened.