CVE-2026-53046: ksmbd: fix use-after-free from async crypto on Qualcomm crypto engine
In the Linux kernel, the following vulnerability has been resolved:
ksmbd: fix use-after-free from async crypto on Qualcomm crypto engine
ksmbdcryptmessage() sets a NULL completion callback on AEAD requests and does not handle the -EINPROGRESS return code from async hardware crypto engines like the Qualcomm Crypto Engine (QCE). When QCE returns -EINPROGRESS, ksmbd treats it as an error and immediately frees the request while the hardware DMA operation is still in flight. The DMA completion callback then dereferences freed memory, causing a NULL pointer crash:
pc : qceskcipherdone+0x24/0x174 lr : vchancomplete+0x230/0x27c ... el1h64irq+0x68/0x6c ksmbdfreeworkstruct+0x20/0x118 [ksmbd] ksmbdexitfilecache+0x694/0xa4c [ksmbd]
Use the standard cryptowaitreq() pattern with cryptoreqdone() as the completion callback, matching the approach used by the SMB client in fs/smb/client/smb2ops.c. This properly handles both synchronous engines (immediate return) and async engines (-EINPROGRESS followed by callback notification).
Affected Software
Remediation
Recommended actions to resolve this vulnerability, in priority order.
- Upgrade
Upgrade
Linux kernelto a version that resolves this vulnerability.Patch ksmbd: fix use-after-free from async crypto on Qualcomm crypto engine - Configuration
Apply the kernel change for ksmbd_crypt_message()/smb2ops so AEAD requests use the standard crypto_wait_req() + crypto_req_done() pattern and properly handle -EINPROGRESS from async hardware; ensure the completion callback is set and does not dereference freed memory after vchan completion.
ksmbd (Linux kernel, fs/smb/client/smb2ops.c) completion callback handling for AEAD async crypto requests = Set a completion callback using the standard crypto_wait_req() pattern with crypto_req_done() (do not leave it NULL) and handle -EINPROGRESS correctly
Event History
Frequently Asked Questions
What is the severity of CVE-2026-53046?
CVE-2026-53046 has a critical severity score of 9.8.
What is the risk associated with CVE-2026-53046?
CVE-2026-53046 has a risk rating of 86, indicating a high level of threat.
How do I fix CVE-2026-53046?
To fix CVE-2026-53046, update your Linux ksmbd to the latest patched version from the official repository.
What type of vulnerability is CVE-2026-53046?
CVE-2026-53046 is classified as a Use After Free vulnerability in the Linux kernel's ksmbd.
What component is affected by CVE-2026-53046?
CVE-2026-53046 affects the ksmbd component within the Linux kernel.