CVE-2024-26584
CriticalCVSS 9.8Exploitation Probability (EPSS)
Low risk16th percentile - higher than 16% of all known CVEs
Summary
In the Linux kernel, a TLS module issue was fixed regarding the handling of crypto requests that may be backlogged. When the CRYPTO_TFM_REQ_MAY_BACKLOG flag is set, crypto_aead functions can return -EBUSY instead of -EINPROGRESS, causing the async callback to be invoked twice. The fix converts -EBUSY to -EINPROGRESS to avoid modifying error handling paths.
Risk Assessment
The vulnerability could lead to incorrect TLS behavior, potentially causing communication errors or crashes, which may affect the confidentiality and integrity of transmitted data.
Recommendation
It is recommended to update the Linux kernel to a version containing the fix for CVE-2024-26584.
Original NVD description (English source)
In the Linux kernel, the following vulnerability has been resolved: net: tls: handle backlogging of crypto requests Since we're setting the CRYPTO_TFM_REQ_MAY_BACKLOG flag on our requests to the crypto API, crypto_aead_{encrypt,decrypt} can return -EBUSY instead of -EINPROGRESS in valid situations. For example, when the cryptd queue for AESNI is full (easy to trigger with an artificially low cryptd.cryptd_max_cpu_qlen), requests will be enqueued to the backlog but still processed. In that case, the async callback will also be called twice: first with err == -EINPROGRESS, which it seems we can just ignore, then with err == 0. Compared to Sabrina's original patch this version uses the new tls_*crypt_async_wait() helpers and converts the EBUSY to EINPROGRESS to avoid having to modify all the error handling paths. The handling is identical.

