Executive brief
A vulnerability exists in the Linux kernel's QuickAssist Technology (QAT) driver, which is used for hardware-accelerated cryptography and compression. A flaw in how the driver handles device resets can lead to memory leaks or system instability. In a worst-case scenario, a local attacker could exploit this to cause a system crash, resulting in a denial of service.
Technical details
A vulnerability in the Intel QuickAssist Technology (QAT) driver (drivers/crypto/qat) stems from improper synchronization during synchronous device resets (ADF_DEV_RESET_SYNC). The driver previously used completion_done() to determine if a caller was still present, which was insufficient and created a race condition. This could result in a memory leak of the reset_data structure or a use-after-free (UAF) if the caller had not yet reached wait_for_completion(). The fix replaces this logic with cancel_work_sync() to ensure the worker thread is stopped before memory is safely freed. The vulnerability is reachable locally and primarily impacts system availability.
Affected products
- Linux Linux Kernel 4.19.312 to 4.19.316, 5.4.274 to 5.4.278, 5.10.215 to 5.10.219, 5.15.154 to 5.15.161, 6.1.84 to 6.1.94, 6.6.24 to 6.6.34, 6.9 to 6.9.5
Timeline
- 2024-07-10: disclosed: Initial disclosure and publication of CVE-2024-39493
- 2024-06-16: patched: Fixes committed to various stable kernel branches
References
- https://git.kernel.org/stable/c/0ce5964b82f212f4df6a9813f09a0b5de15bd9c8
- https://git.kernel.org/stable/c/3fb4601e0db10d4fe25e46f3fa308d40d37366bd
- https://git.kernel.org/stable/c/6396b33e98c096bff9c253ed49c008247963492a
- https://git.kernel.org/stable/c/a718b6d2a329e069b27d9049a71be5931e71d960
- https://git.kernel.org/stable/c/c2d443aa1ae3175c13a665f3a24b8acd759ce9c3
- https://git.kernel.org/stable/c/d0fd124972724cce0d48b9865ce3e273ef69e246
- https://git.kernel.org/stable/c/d3b17c6d9dddc2db3670bc9be628b122416a3d26