CVE-2026-31533
EUVD-2026-2524923.04.2026, 18:16
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.EnginsightAffected Products (NVD)
| Vendor | Product | Version |
|---|---|---|
| linux | linux_kernel | 5.15.160 ≤ 𝑥 < 5.15.203 |
| linux | linux_kernel | 6.1.84 ≤ 𝑥 < 6.1.169 |
| linux | linux_kernel | 6.6.18 ≤ 𝑥 < 6.6.135 |
| linux | linux_kernel | 6.7.6 ≤ 𝑥 < 6.8 |
| linux | linux_kernel | 6.8.1 ≤ 𝑥 < 6.12.82 |
| linux | linux_kernel | 6.13 ≤ 𝑥 < 6.18.23 |
| linux | linux_kernel | 6.19 ≤ 𝑥 < 6.19.13 |
| linux | linux_kernel | 7.0:rc1 |
| linux | linux_kernel | 7.0:rc2 |
| linux | linux_kernel | 7.0:rc3 |
| linux | linux_kernel | 7.0:rc4 |
| linux | linux_kernel | 7.0:rc5 |
| linux | linux_kernel | 7.0:rc6 |
| linux | linux_kernel | 7.0:rc7 |
𝑥
= Vulnerable software versions
Early Detection
Affected products identified ahead of NVD analysis through intelligence sources.
| Vendor | Product | Version | Source |
|---|---|---|---|
| Siemens | SIMATIC S7-1500 CPU 1518-4 PN/DP MFP | V3.1.6 ≤ 𝑥 < * | ADP |
| Siemens | SIMATIC S7-1500 CPU 1518-4 PN/DP MFP | V3.1.5 ≤ 𝑥 < * | ADP |
| Siemens | SIMATIC S7-1500 CPU 1518-4 PN/DP MFP | V3.1.6 ≤ 𝑥 < * | ADP |
| Siemens | SIMATIC S7-1500 CPU 1518-4 PN/DP MFP | V3.1.5 ≤ 𝑥 < * | ADP |
| Siemens | SIMATIC S7-1500 CPU 1518F-4 PN/DP MFP | V3.1.6 ≤ 𝑥 < * | ADP |
| Siemens | SIMATIC S7-1500 CPU 1518F-4 PN/DP MFP | V3.1.5 ≤ 𝑥 < * | ADP |
| Siemens | SIMATIC S7-1500 CPU 1518F-4 PN/DP MFP | V3.1.6 ≤ 𝑥 < * | ADP |
| Siemens | SIMATIC S7-1500 CPU 1518F-4 PN/DP MFP | V3.1.5 ≤ 𝑥 < * | ADP |
| Siemens | SIPLUS S7-1500 CPU 1518-4 PN/DP MFP | V3.1.6 ≤ 𝑥 < * | ADP |
| Siemens | SIPLUS S7-1500 CPU 1518-4 PN/DP MFP | V3.1.5 ≤ 𝑥 < * | ADP |
Debian Releases
openSUSE / SLES Releases
openSUSE Product | |||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| cluster-md-kmp-default |
| ||||||||||||
| dlm-kmp-default |
| ||||||||||||
| gfs2-kmp-default |
| ||||||||||||
| kernel-64kb |
| ||||||||||||
| kernel-default |
| ||||||||||||
| kernel-default-base |
| ||||||||||||
| kernel-obs-build |
| ||||||||||||
| kernel-source |
| ||||||||||||
| kernel-zfcpdump |
| ||||||||||||
| ocfs2-kmp-default |
| ||||||||||||
| reiserfs-kmp-default |
|
Amazon Linux Releases
Amazon Package | |||
|---|---|---|---|
| bpftool |
| ||
| bpftool-debuginfo |
| ||
| bpftool6.12 |
| ||
| bpftool6.12-debuginfo |
| ||
| bpftool6.18 |
| ||
| bpftool6.18-debuginfo |
| ||
| kernel |
| ||
| kernel-debuginfo |
| ||
| kernel-debuginfo-common-aarch64 |
| ||
| kernel-debuginfo-common-x86_64 |
| ||
| kernel-devel |
| ||
| kernel-headers |
| ||
| kernel-livepatch-6.1.170-210.320 |
| ||
| kernel-livepatch-6.12.83-113.160 |
| ||
| kernel-livepatch-6.18.25-55.108 |
| ||
| kernel-modules-extra |
| ||
| kernel-modules-extra-common |
| ||
| kernel-tools |
| ||
| kernel-tools-debuginfo |
| ||
| kernel-tools-devel |
| ||
| kernel6.12 |
| ||
| kernel6.12-debuginfo |
| ||
| kernel6.12-debuginfo-common-aarch64 |
| ||
| kernel6.12-debuginfo-common-x86_64 |
| ||
| kernel6.12-devel |
| ||
| kernel6.12-headers |
| ||
| kernel6.12-modules-extra |
| ||
| kernel6.12-modules-extra-common |
| ||
| kernel6.12-tools |
| ||
| kernel6.12-tools-debuginfo |
| ||
| kernel6.12-tools-devel |
| ||
| kernel6.18 |
| ||
| kernel6.18-debuginfo |
| ||
| kernel6.18-debuginfo-common-aarch64 |
| ||
| kernel6.18-debuginfo-common-x86_64 |
| ||
| kernel6.18-devel |
| ||
| kernel6.18-headers |
| ||
| kernel6.18-modules-extra |
| ||
| kernel6.18-modules-extra-common |
| ||
| kernel6.18-tools |
| ||
| kernel6.18-tools-debuginfo |
| ||
| kernel6.18-tools-devel |
| ||
| perf |
| ||
| perf-debuginfo |
| ||
| perf6.12 |
| ||
| perf6.12-debuginfo |
| ||
| perf6.18 |
| ||
| perf6.18-debuginfo |
| ||
| python3-perf |
| ||
| python3-perf-debuginfo |
| ||
| python3-perf6.12 |
| ||
| python3-perf6.12-debuginfo |
| ||
| python3-perf6.18 |
| ||
| python3-perf6.18-debuginfo |
|
Common Weakness Enumeration
References