CVE-2026-64439 Overview
CVE-2026-64439 is a use-after-free vulnerability in the Linux kernel's Kerberos 5 (krb5) crypto subsystem. The flaw affects the krb5_aead_encrypt() and krb5_aead_decrypt() helpers in rfc3961_simplified.c, along with rfc8009_encrypt() and rfc8009_decrypt() in rfc8009_aes2.c. These helpers were written as synchronous callers but do not filter asynchronous AEAD backends at allocation time. When an async AEAD instance returns -EINPROGRESS, the caller treats the negative return as terminal and frees the buffer through kfree_sensitive() while the backend worker still holds a reference. The kernel is reachable through net/rxrpc/rxgk.c, fs/afs/cm_security.c, and net/ceph/crypto.c.
Critical Impact
Remote attackers on systems using an async AEAD provider bound to the krb5 enctype can trigger a slab use-after-free, enabling denial of service or potential kernel memory corruption.
Affected Products
- Linux kernel with krb5 crypto subsystem enabled
- Systems using rxRPC with GSSAPI (net/rxrpc/rxgk.c)
- Systems using AFS callback manager security (fs/afs/cm_security.c) or Ceph crypto (net/ceph/crypto.c) with an async AEAD backend
Discovery Timeline
- 2026-07-25 - CVE-2026-64439 published to NVD
- 2026-07-27 - Last updated in NVD database
Technical Details for CVE-2026-64439
Vulnerability Analysis
The vulnerability is a use-after-free (UAF) in the Linux kernel Kerberos crypto helpers. The affected functions install a NULL completion callback on the AEAD request and then invoke crypto_aead_encrypt() or crypto_aead_decrypt(). The helpers assume synchronous execution and interpret any negative return as a terminal error. Control then falls through to kfree_sensitive(buffer).
When the resolved encrypt_name maps to an async AEAD implementation, the crypto API returns -EINPROGRESS while the backend worker continues processing the request. The buffer is freed while the worker still holds a pointer to it. On completion, the worker dereferences freed slab memory. A KASAN report under UML+SLUB confirms the condition:
BUG: KASAN: slab-use-after-free in t5_stub_complete+0x7d/0xc7
The attack surface reaches network-facing consumers including rxRPC GSSAPI (rxgk), AFS cache manager security, and the Ceph client crypto layer. Any deployment binding an async AEAD provider to the krb5 enctype name is exposed.
Root Cause
The helpers were written for synchronous AEAD operation but never filtered out async AEAD instances at crypto_alloc_aead() time. The absence of a crypto_wait_req() handler combined with premature buffer release creates the UAF window between request submission and asynchronous completion.
Attack Vector
An attacker able to reach a krb5-consuming network service, such as rxRPC, AFS, or Ceph, can trigger encrypt or decrypt operations that reach the vulnerable helpers. When the system administrator or crypto template registration has bound an async AEAD backend to the krb5 enctype, remote triggering leads to kernel slab corruption. The upstream fix filters out async AEAD instances at allocation time rather than plumbing crypto_wait_req() through every call site.
Detection Methods for CVE-2026-64439
Indicators of Compromise
- KASAN reports referencing slab-use-after-free inside AEAD completion callbacks such as t5_stub_complete or krb5 helper stacks
- Unexpected kernel panics or slab corruption originating from net/rxrpc/rxgk.c, fs/afs/cm_security.c, or net/ceph/crypto.c
- Registration of async AEAD templates aliased to krb5 enctype names in /proc/crypto
Detection Strategies
- Audit /proc/crypto output for async : yes entries matching krb5 encrypt_name values used by the kernel Kerberos subsystem
- Enable KASAN in test environments to detect use-after-free conditions during AEAD operations under load
- Monitor kernel logs for Oops, general protection fault, or KASAN traces referencing krb5 or AEAD completion paths
Monitoring Recommendations
- Forward kernel dmesg and journald messages to a centralized log platform and alert on KASAN or slab corruption signatures
- Track kernel package versions across the fleet and flag hosts running kernels missing commits 2b7bd6d, 6c9ddde, or ef6feb7
- Instrument rxRPC, AFS, and Ceph service crash rates to detect abnormal restart patterns tied to crypto failures
How to Mitigate CVE-2026-64439
Immediate Actions Required
- Apply the upstream Linux kernel patches that filter async AEAD instances at crypto_alloc_aead() in the krb5 helpers
- Restrict network access to services that consume krb5 crypto (rxRPC, AFS, Ceph) until patched kernels are deployed
- Inventory hosts with async AEAD crypto providers and prioritize their patching
Patch Information
The fix is available in the following upstream commits: Kernel Git Commit 2b7bd6d, Kernel Git Commit 6c9ddde, and Kernel Git Commit ef6feb7. The patches reject async AEAD implementations during allocation so the synchronous helpers never receive -EINPROGRESS.
Workarounds
- Avoid loading async AEAD crypto modules on hosts running krb5-dependent services until the kernel is patched
- Disable or restrict rxRPC (rxgk), AFS, and Ceph client functionality where operationally acceptable
- Constrain the krb5 enctype selection to backends known to resolve to synchronous AEAD implementations
# Inspect registered crypto templates for async AEAD aliases
grep -E 'name|driver|async|type' /proc/crypto | grep -B1 -A2 'aead'
# Prevent loading of a known-async AEAD module (example)
echo 'blacklist <async_aead_module>' | sudo tee /etc/modprobe.d/blacklist-async-aead.conf
sudo update-initramfs -u
Disclaimer: This content was generated using AI. While we strive for accuracy, please verify critical information with official sources.

