Executive brief
A vulnerability exists in the Linux kernel's TLS (Transport Layer Security) implementation, which is used to secure network communications. An error in how the system handles busy encryption requests can lead to a system crash or allow an attacker to execute unauthorized code. This could result in a complete compromise of the affected system, impacting data confidentiality and service availability.
Technical details
A use-after-free (UAF) vulnerability exists in the net/tls module of the Linux kernel, specifically within the tls_do_encryption() function. The issue stems from a double-cleanup of 'encrypt_pending' and scatterlist entries when crypto_aead_encrypt() returns -EBUSY and the subsequent async wait returns an error. This double-decrement corrupts the pending request counter, causing the kernel to prematurely free TLS record structures while asynchronous callbacks are still pending. An attacker can trigger this condition to achieve a use-after-free when the delayed callback executes on freed memory. Patches have been released for multiple Linux stable branches (e.g., commits starting with 02f3ecad, 0e43e0a3, 2694d408).
Affected products
- Linux Linux Kernel Affected by commit 859054147318; fixed in various stable branches
- Siemens SIMATIC S7-1500 CPU 1518-4 PN/DP MFP V3.1.5, V3.1.6
- Siemens SIMATIC S7-1500 CPU 1518F-4 PN/DP MFP V3.1.5, V3.1.6
- Siemens SIPLUS S7-1500 CPU 1518-4 PN/DP MFP V3.1.5, V3.1.6
Timeline
- 2026-04-03: disclosed: Initial patch submission by Muhammad Alifa Ramdhan
- 2026-04-18: patched: Commits merged into Linux stable trees by Greg Kroah-Hartman
- 2026-04-23: advisory: CVE-2026-31533 published
References
- https://git.kernel.org/stable/c/02f3ecadb23558bbe068e6504118f1b712d4ece0
- https://git.kernel.org/stable/c/0e43e0a3c94044acc74b8e0927c27972eb5a59e8
- https://git.kernel.org/stable/c/2694d408b0e595024e0fc1d64ff9db0358580f74
- https://git.kernel.org/stable/c/414fc5e5a5aff776c150f1b86770e0a25a35df3a
- https://git.kernel.org/stable/c/5d70eb25b41e9b010828cd12818b06a0c3b04412
- https://git.kernel.org/stable/c/a9b8b18364fffce4c451e6f6fd218fa4ab646705
- https://git.kernel.org/stable/c/aa9facde6c5005205874c37db3fd25799d741baf