Description
In the Linux kernel, the following vulnerability has been resolved:

crypto: krb5 - filter out async aead implementations at alloc

krb5_aead_encrypt(), krb5_aead_decrypt() in rfc3961_simplified.c and
rfc8009_encrypt(), rfc8009_decrypt() in rfc8009_aes2.c set a NULL
completion callback and treat any negative return from
crypto_aead_{encrypt,decrypt}() as terminal, falling through to
kfree_sensitive(buffer). When the encrypt_name resolves to an
async AEAD instance the request returns -EINPROGRESS, the buffer
is freed while the backend's worker still holds a pointer, and the
worker dereferences the freed slab on completion.

KASAN report under UML+SLUB with a synthetic async aead backend
bound to krb5->encrypt_name:

BUG: KASAN: slab-use-after-free in t5_stub_complete+0x7d/0xc7

The helpers were written synchronously, so filter the async
instances out at allocation time instead of plumbing
crypto_wait_req() through every call site.

Reachable via net/rxrpc/rxgk.c, fs/afs/cm_security.c and
net/ceph/crypto.c on systems with an async AEAD provider bound to
the krb5 enctype name.
Published: 2026-07-25
Score: 9.8 Critical
EPSS: < 1% Very Low
KEV: No
Impact: n/a
Action: n/a
AI Analysis

Impact

In the Linux kernel, krb5 crypto routines incorrectly handle asynchronous AEAD providers. When a cryptographic operation resolves to an async AEAD instance, the routine frees the buffer while the backend worker still holds a reference, causing a use‑after‑free that can crash the kernel. This results in denial of service. The issue is due to an improper treatment of negative return values from crypto_aead_{encrypt,decrypt}(), which are considered terminal even when the return code is -EINPROGRESS. The bug is confined to the krb5 module’s encryption and decryption functions in rfc3961_simplified.c and rfc8009_aes2.c, and is triggered when an async AEAD instance is bound to the krb5 encrypt_name name.

Affected Systems

All Linux kernel deployments that load the krb5 module with an async AEAD provider bound to the krb5 encrypt_name are affected. The vulnerability is reachable through net/rxrpc/rxgk.c, fs/afs/cm_security.c and net/ceph/crypto.c on systems where such a provider is configured.

Risk and Exploitability

The EPSS score is below 1%, indicating a low probability of exploitation, and the vulnerability is not listed in the CISA KEV catalog. An attacker would need to trigger a krb5 encryption/decrypt call that selects the async provider to exploit the bug. Once triggered, the kernel may crash, leading to denial of service. The risk is mitigated by promptly applying the vendor patch or removing the problematic provider.

Generated by OpenCVE AI on August 3, 2026 at 18:41 UTC.

Remediation

No vendor fix or workaround currently provided.

OpenCVE Recommended Actions

  • Apply a Linux kernel update that includes the async AEAD filtering patch
  • If a kernel upgrade is not immediately possible, remove or disable any async AEAD provider bound to the krb5 encrypt_name name
  • Configure kernel crash dumping and enable KASAN or other memory‑sanitizing tools to detect and investigate any subsequent use‑after‑free incidents

Generated by OpenCVE AI on August 3, 2026 at 18:41 UTC.

Tracking

Sign in to view the affected projects.

Advisories

No advisories yet.

History

Wed, 29 Jul 2026 12:15:00 +0000

Type Values Removed Values Added
Weaknesses CWE-825
References
Metrics threat_severity

None

threat_severity

Important


Mon, 27 Jul 2026 05:15:00 +0000

Type Values Removed Values Added
Metrics cvssV3_1

{'score': 9.8, 'vector': 'CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H'}


Sat, 25 Jul 2026 09:30:00 +0000

Type Values Removed Values Added
Description In the Linux kernel, the following vulnerability has been resolved: crypto: krb5 - filter out async aead implementations at alloc krb5_aead_encrypt(), krb5_aead_decrypt() in rfc3961_simplified.c and rfc8009_encrypt(), rfc8009_decrypt() in rfc8009_aes2.c set a NULL completion callback and treat any negative return from crypto_aead_{encrypt,decrypt}() as terminal, falling through to kfree_sensitive(buffer). When the encrypt_name resolves to an async AEAD instance the request returns -EINPROGRESS, the buffer is freed while the backend's worker still holds a pointer, and the worker dereferences the freed slab on completion. KASAN report under UML+SLUB with a synthetic async aead backend bound to krb5->encrypt_name: BUG: KASAN: slab-use-after-free in t5_stub_complete+0x7d/0xc7 The helpers were written synchronously, so filter the async instances out at allocation time instead of plumbing crypto_wait_req() through every call site. Reachable via net/rxrpc/rxgk.c, fs/afs/cm_security.c and net/ceph/crypto.c on systems with an async AEAD provider bound to the krb5 enctype name.
Title crypto: krb5 - filter out async aead implementations at alloc
First Time appeared Linux
Linux linux Kernel
CPEs cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*
Vendors & Products Linux
Linux linux Kernel
References

Subscriptions

Linux Linux Kernel
cve-icon MITRE

Status: PUBLISHED

Assigner: Linux

Published:

Updated: 2026-08-05T12:42:03.142Z

Reserved: 2026-07-19T15:36:31.788Z

Link: CVE-2026-64439

cve-icon Vulnrichment

No data.

cve-icon NVD

Status : Awaiting Analysis

Published: 2026-07-25T10:17:28.447

Modified: 2026-08-11T15:01:50.637

Link: CVE-2026-64439

cve-icon Redhat

Severity : Important

Publid Date: 2026-07-25T00:00:00Z

Links: CVE-2026-64439 - Bugzilla

cve-icon OpenCVE Enrichment

Updated: 2026-08-03T18:45:17Z

Weaknesses
  • CWE-825

    Expired Pointer Dereference