Back to CVE records
Critical 9.8Published Apr 23, 2026

CVE-2026-31533net/tls: fix use-after-free in -EBUSY error path of tls_do_encryption

Updated under an hour ago ()

Does this affect you?

It affects Linux and 4 other products. Add what you run to find out whether that includes you.

No exploitation reported and no EPSS estimate yet.

In the Linux kernel, the following vulnerability has been resolved: net/tls: fix use-after-free in -EBUSY error path of tls_do_encryption The -EBUSY handling in tls_do_encryption(), introduced by commit 859054147318 ("net: tls: handle backlogging of crypto requests"), has a use-after-free due to double cleanup of encrypt_pending and the scatterlist entry. When crypto_aead_encrypt() returns -EBUSY, the request is enqueued to the cryptd backlog and the async callback tls_encrypt_done() will be invoked upon completion. That callback unconditionally restores the scatterlist entry (sge->offset, sge->length) and decrements ctx->encrypt_pending. However, if tls_encrypt_async_wait() returns an error, the synchronous error path in tls_do_encryption() performs the same cleanup again, double-decrementing encrypt_pending and double-restoring the scatterlist. The double-decrement corrupts the encrypt_pending sentinel (initialized to 1), making tls_encrypt_async_wait() permanently skip the wait for pending async callbacks. A subsequent sendmsg can then free the tls_rec via bpf_exec_tx_verdict() while a cryptd callback is still pending, resulting in a use-after-free when the callback fires on the freed record. Fix this by skipping the synchronous cleanup when the -EBUSY async wait returns an error, since the callback has already handled encrypt_pending and sge restoration.

CVSS
9.8 CRITICAL (v3.1, CNA)CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
Weakness (CWE)
Not given
Known exploited
Not in CISA's KEV catalog
EPSS (exploitation in the next 30 days)
Not loaded for this CVE
Assigned by
Linux
NVD analysis
Modified
Record last updated
Oct 16, 2026
First seen by InfoSec Signals
Oct 9, 2026

Affected products

Affected products
Linux Linux
linux:linux (from the name)
from 3ade391adc584f17b5570fd205de3ad029090368 before 414fc5e5a5aff776c150f1b86770e0a25a35df3a; from cd1bbca03f3c1d845ce274c0d0a66de8e5929f72 before 02f3ecadb23558bbe068e6504118f1b712d4ece0; 13eca403876bbea3716e82cdfe6f1e6febb38754 builds before 0e43e0a3c94044acc74b8e0927c27972eb5a59e8; from 8590541473188741055d27b955db0777569438e3 before aa9facde6c5005205874c37db3fd25799d741baf; 8590541473188741055d27b955db0777569438e3 builds before 5d70eb25b41e9b010828cd12818b06a0c3b04412; 8590541473188741055d27b955db0777569438e3 builds before 2694d408b0e595024e0fc1d64ff9db0358580f74; from 8590541473188741055d27b955db0777569438e3 before a9b8b18364fffce4c451e6f6fd218fa4ab646705; ab6397f072e5097f267abf5cb08a8004e6b17694; and 4 more ranges
CNA record
Siemens SIMATIC S7-1500 CPU 1518-4 PN/DP MFP
siemens:simatic_s7_1500_cpu_1518_4_pn_dp_mfp (from the name)
from V3.1.6
CISA ADP
Siemens SIMATIC S7-1500 CPU 1518F-4 PN/DP MFP
siemens:simatic_s7_1500_cpu_1518f_4_pn_dp_mfp (from the name)
from V3.1.6
CISA ADP
Siemens SIPLUS S7-1500 CPU 1518-4 PN/DP MFP
siemens:siplus_s7_1500_cpu_1518_4_pn_dp_mfp (from the name)
from V3.1.6
CISA ADP
linux linux_kernel
linux:linux_kernel
from 5.15.160 before 5.15.203; from 6.1.84 before 6.1.169; from 6.6.18 before 6.6.135; from 6.7.6 before 6.8; from 6.8.1 before 6.12.82; from 6.13 before 6.18.23; from 6.19 before 6.19.13; 7.0; and 6 more ranges
NVD

References

  • patch
  • patch
  • patch
  • patch
  • patch
  • patch
  • patch

The CVE record is authoritative. Products marked “from the name” were identified from the CNA's free-text names, not a CPE, and are matched less certainly. This product uses the NVD API but is not endorsed or certified by the NVD.

Your cookie choices
We use essential cookies to run this site, and, only with your consent, an advertising cookie from Google to measure whether our ads lead to sign-ups and subscriptions. See our for details.