In the Linux kernel, the following vulnerability has been resolved:
crypto: krb5 - use kfree_sensitive() for derived key buffers
crypto_krb5_prepare_encryption() and crypto_krb5_prepare_checksum()
free the buffer holding the freshly derived keys with plain kfree(),
leaving the key material behind in the freed slab object.
CVSS Vector: CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N
CVSS Score: 7.5
AV:N - crypto_krb5_prepare_encryption() and crypto_krb5_prepare_checksum() run from nfsd RPCSEC_GSS on TCP/2049, from in-kernel RxGK handshake processing of remote RESPONSE packets (rxgk_extract_token/rxgk_set_up_token_cipher), and from Ceph/AFS network-filesystem security, so a remote peer can cause derived Kerberos keys to be left in freed slab.
AC:L - Each prepare path derives Ke/Ki/Kc into a kmalloc buffer then frees it with plain kfree(); the leftover is deterministic on every GSS/RxGK/Ceph context setup, with no race or attacker-uncontrollable memory layout required to leave the keys in the slab.
PR:N - RxGK token-cipher setup runs while decrypting the authentication token, before the token or authenticator is verified, and nfsd RPCSEC_GSS INIT is the authentication handshake; a network peer needs no local Linux account or capability to drive these pre-auth paths.
UI:N - A Kerberos NFS server or RxRPC/AFS endpoint automatically processes incoming GSS/RxGK handshake packets; no victim mount, click, or other interactive action is required at exploit time.
S:U - Leftover keys remain in host-kernel slab; this is ordinary kernel information disclosure within the same security authority, not a VM escape, IOMMU bypass, or sandbox breakout.
C:H - The freed buffers hold complete derived Kerberos encryption and integrity keys (Ke/Ki/Kc, up to 32-byte AES-256 material). Recovering them from reused slab yields full session-key disclosure for NFS, AFS, Ceph, or RxGK traffic.
I:N - The bug only fails to wipe key material before kfree(); it does not corrupt kernel memory, provide a write primitive, or hijack control flow.
A:N - Replacing kfree() with kfree_sensitive() does not affect control flow; the plain kfree() path does not oops, deadlock, leak allocator objects, or otherwise impact availability.
| Attack Vector |
Network |
Scope |
Unchanged |
| Attack Complexity |
Low |
Confidentiality Impact |
High |
| Privileges Required |
None |
Integrity Impact |
None |
| User Interaction |
None |
Availability Impact |
None |
AV:N - crypto_krb5_prepare_encryption() and crypto_krb5_prepare_checksum() run from nfsd RPCSEC_GSS on TCP/2049, from in-kernel RxGK handshake processing of remote RESPONSE packets (rxgk_extract_token/rxgk_set_up_token_cipher), and from Ceph/AFS network-filesystem security, so a remote peer can cause derived Kerberos keys to be left in freed slab.
AC:L - Each prepare path derives Ke/Ki/Kc into a kmalloc buffer then frees it with plain kfree(); the leftover is deterministic on every GSS/RxGK/Ceph context setup, with no race or attacker-uncontrollable memory layout required to leave the keys in the slab.
PR:N - RxGK token-cipher setup runs while decrypting the authentication token, before the token or authenticator is verified, and nfsd RPCSEC_GSS INIT is the authentication handshake; a network peer needs no local Linux account or capability to drive these pre-auth paths.
UI:N - A Kerberos NFS server or RxRPC/AFS endpoint automatically processes incoming GSS/RxGK handshake packets; no victim mount, click, or other interactive action is required at exploit time.
S:U - Leftover keys remain in host-kernel slab; this is ordinary kernel information disclosure within the same security authority, not a VM escape, IOMMU bypass, or sandbox breakout.
C:H - The freed buffers hold complete derived Kerberos encryption and integrity keys (Ke/Ki/Kc, up to 32-byte AES-256 material). Recovering them from reused slab yields full session-key disclosure for NFS, AFS, Ceph, or RxGK traffic.
I:N - The bug only fails to wipe key material before kfree(); it does not corrupt kernel memory, provide a write primitive, or hijack control flow.
A:N - Replacing kfree() with kfree_sensitive() does not affect control flow; the plain kfree() path does not oops, deadlock, leak allocator objects, or otherwise impact availability.
CVSS 3.1