CVE-2026-64438·Kernel vulnerability
In the Linux kernel, the following vulnerability has been resolved: crypto: qat - fix VF2PF work teardown race in adf_disable_sriov() The VF2PF interrupt handler queues PF-side response work that stores a raw pointer to per-VF state (struct adf_accel_vf_info). Currently, adf_disable_sriov() destroys per-VF mutexes and frees vf_info without stopping new VF2PF work or waiting for in-flight workers to complete. A concurrently scheduled or already queued worker can then dereference freed memory. This manifests as a use-after-free when KASAN is enabled: BUG: KASAN: null-ptr-deref in mutex_lock+0x76/0xe0 Write of size 8 at addr 0000000000000260 by task kworker/24:2/... Workqueue: qat_pf2vf_resp_wq adf_iov_send_resp [intel_qat] Call Trace: kasan_report+0x119/0x140 mutex_lock+0x76/0xe0 adf_gen4_pfvf_send+0xd4/0x1f0 [intel_qat] adf_recv_and_handle_vf2pf_msg+0x290/0x360 [intel_qat] adf_iov_send_resp+0x8c/0xe0 [intel_qat] process_one_work+0x6ac/0xfd0 worker_thread+0x4dd/0xd30 kthread+0x326/0x410 ret_from_fork+0x33b/0x670 Add a PF-local flag, vf2pf_disabled, that gates work queueing, worker processing, and interrupt re-enabling during teardown. Set this flag atomically with the hardware interrupt mask inside adf_disable_all_vf2pf_interrupts(). After masking, synchronize the AE cluster MSI-X interrupt and flush the PF response workqueue before tearing down per-VF locks and state so all in-flight work completes before vf_info is destroyed. Introduce adf_enable_all_vf2pf_interrupts() to clear the flag and unmask all VF2PF interrupts under the same lock when SR-IOV is re-enabled. This ensures the software flag and hardware state transition atomically on both the enable and disable paths.
- Severity
- high
- Software
- Kernel
- Fixed in
- 7.1.4
- Published
Affected versions
From: 6.19
Until: 7.1.4
Fixed in: 7.1.4
How to fix this CVE
Update the Linux kernel to version 7.1.4 or later to resolve a use-after-free vulnerability in the QAT driver's VF2PF interrupt handling during SR-IOV teardown. This patch introduces proper synchronization flags and workqueue flushing to prevent kernel workers from accessing freed memory after SR-IOV is disabled. Apply the kernel update immediately, as this vulnerability can lead to kernel crashes or memory corruption on systems using Intel QAT accelerators with virtualization enabled.
sudo dnf update kernel kernel-develDefensia detects this vulnerability
How to check if you are affected
- Check your kernel version: uname -r | grep -E '^[56]\.[0-9]+|^6\.(19|[2-9][0-9])|^7\.(0|1\.[0-3])'
- Verify QAT driver is loaded: lsmod | grep -i qat (if output is non-empty, system is affected if kernel < 7.1.4)
- Check dmesg for KASAN use-after-free warnings: sudo dmesg | grep -i 'kasan.*null-ptr-deref' or grep -i 'adf_iov_send_resp'
- Confirm patch applied: cat /proc/version and verify kernel version is 7.1.4 or later; check git log for commit 218c2836b3987f3fa1d9eac505462cded0821e4c in kernel source
FAQ
What is CVE-2026-64438?
This is a use-after-free vulnerability in the Linux kernel's Intel QAT cryptographic accelerator driver. During SR-IOV teardown, kernel worker threads can dereference pointers to VF state structures that have already been freed, causing kernel crashes or memory corruption.
Is CVE-2026-64438 being actively exploited?
No, this vulnerability is not listed in CISA's Known Exploited Vulnerabilities (KEV) catalog and no public exploits are available. However, it can be triggered locally by privileged users disabling SR-IOV on systems with QAT hardware.
What versions of Kernel are affected by CVE-2026-64438?
Linux kernel versions 6.19 through 7.1.3 are vulnerable. The fix is included in kernel 7.1.4 and later stable releases.
How do I check if my server is vulnerable to CVE-2026-64438?
Run: uname -r and verify output is 7.1.4 or later. Additionally, check lsmod | grep qat to confirm QAT driver presence. If kernel is < 7.1.4 and QAT is loaded, your system is vulnerable.
Does Defensia detect CVE-2026-64438?
Yes — Defensia's CVE advisory scanner compares installed package versions against the NVD database. If the Linux kernel is installed on a monitored server, CVE-2026-64438 will appear in your dashboard with remediation steps.
Related Kernel CVEs
References
- https://git.kernel.org/stable/c/218c2836b3987f3fa1d9eac505462cded0821e4c
- https://git.kernel.org/stable/c/277281c10c63791067d24d421f7c43a15faa9096
- https://git.kernel.org/stable/c/446b4d77599cf1a168573f7fb32a4a6aa4f09219
- https://git.kernel.org/stable/c/49cd5ac6de8de39a14ead609bb552d372d5602cd
- https://git.kernel.org/stable/c/51144032248cc4ea22917370565650670b8b4e9b
Track CVEs across your fleet automatically
Defensia scans your Linux servers and tells you exactly which ones are running vulnerable versions — including CVE-2026-64438. Free for 1 server.
Get started free