Since Linux 6.9, LUKS suspend stopped wiping disk-encryption keys from memory
Points and comments are a snapshot, not live.
A kernel refactoring in Linux 6.9 silently broke LUKS key wiping on suspend for over two years.
Ingo Blechschmidt discovered that since Linux 6.9 (May 2024), the `luksSuspend` command no longer wiped encryption keys from memory across suspend, leaving them accessible to anyone with physical access. The bug was introduced by a kernel refactoring (`a28d893eb327`) that had an unexpected interaction with dm-crypt's keyring handling. The fix is a one-line kernel patch. Blechschmidt also created an experimental NixOS project (secure-suspend) that resurrects an older kernel patch to properly wipe keys, including integration tests to prevent future regressions. An automated test was added to nixpkgs, and a cryptsetup patch now emits a warning instead of failing silently.
What commenters are saying
Commenters expressed alarm that the bug went unnoticed for two years because the system still prompted for a passphrase on resume, giving a false sense of security. Several noted that most Linux distributions don't use `luksSuspend` by default, so users who don't re-enter passwords after sleep already know keys stay in memory. One camp questioned the threat model, arguing that lock screens and modern memory encryption (TSME) mitigate cold boot attacks. Others countered that physical access still enables DMA attacks and that law enforcement routinely uses cold boot techniques. A few commenters pointed out that hibernate-to-disk with encrypted swap is safer but less convenient.