Executive brief
The Linux kernel's Kerberos cryptographic module failed to securely erase derived encryption keys from memory after use. When the crypto_krb5_prepare_encryption() and crypto_krb5_prepare_checksum() functions completed, they freed key buffers using standard memory deallocation that left cryptographic key material readable in freed kernel memory. An attacker with local access to kernel memory could potentially recover these Kerberos encryption keys.
Technical details
The vulnerability is an information disclosure flaw in the Kerberos crypto implementation (crypto/krb5/krb5_api.c). The root cause is improper memory sanitization: functions crypto_krb5_prepare_encryption() and crypto_krb5_prepare_checksum() use plain kfree() instead of kfree_sensitive() to deallocate buffers containing freshly derived cryptographic keys. This leaves sensitive key material resident in freed slab objects where it may be recovered by local attackers with kernel memory access. The fix replaces all four instances of kfree(keys.data) with kfree_sensitive(keys.data), which overwrites the memory before deallocation. No authentication or network access is required—only local kernel memory access, making this a local privilege escalation or information disclosure vector. Patches are available in the Linux kernel stable trees.
Affected products
- Linux Linux kernel Linux 5.10 through 6.19 and potentially earlier versions with Kerberos crypto support
Timeline
- 2026-09-09: disclosed: CVE-2026-80924 published on NVD
- 2026-09-02: patched: Fix merged by Greg Kroah-Hartman into stable kernel trees