Since Linux 6.9, LUKS suspend stopped wiping disk-encryption keys from memory
Security Alert: LUKS Key Retention in Linux 6.9
According to a report by Ingo Blechschmidt on Mathstodon, a regression has been identified in the Linux kernel. Specifically, starting with Linux 6.9, the system has ceased the practice of clearing disk-encryption keys from memory during the suspend process.
"So. For the past few days I've been deep in a fun…" — Ingo Blechschmidt
The Technical Breakdown
The core issue involves the LUKS (Linux Unified Key Setup) mechanism. Normally, for security, keys should be wiped removed from RAM to prevent cold-boot attacks.
Memory State Comparison
| Kernel Version | Key Status during Suspend | Security Posture |
|---|---|---|
| Wiped from RAM | ||
| Persists in RAM |
Process Flow
Analysis & Verification
The vulnerability can be represented mathematically as the probability of key recovery remaining high:
To visualize the memory leak, consider this conceptual representation of the RAM:
// Conceptual memory state in Linux 6.9+
char *encryption_key = "0xDEADBEEF12345678";
// Expected: memset(encryption_key, 0, key_len);
// Actual: [Key remains untouched in memory]
![]()
Action Items
- Check current kernel version using
uname -r. - Monitor mailing lists for a patch.
- Evaluate risk of physical memory access.
Note: To view the original discussion, users should visit Mathstodon (JavaScript enabled or via a native app).