CVE-2026-23414
Description
In the Linux kernel, the following vulnerability has been resolved:
tls: Purge async_hold in tls_decrypt_async_wait()
The async_hold queue pins encrypted input skbs while the AEAD engine references their scatterlist data. Once tls_decrypt_async_wait() returns, every AEAD operation has completed and the engine no longer references those skbs, so they can be freed unconditionally.
A subsequent patch adds batch async decryption to tls_sw_read_sock(), introducing a new call site that must drain pending AEAD operations and release held skbs. Move __skb_queue_purge(&ctx->async_hold) into tls_decrypt_async_wait() so the purge is centralized and every caller -- recvmsg's drain path, the -EBUSY fallback in tls_do_decryption(), and the new read_sock batch path -- releases held skbs on synchronization without each site managing the purge independently.
This fixes a leak when tls_strp_msg_hold() fails part-way through, after having added some cloned skbs to the async_hold queue. tls_decrypt_sg() will then call tls_decrypt_async_wait() to process all pending decrypts, and drop back to synchronous mode, but tls_sw_recvmsg() only flushes the async_hold queue when one record has been processed in "fully-async" mode, which may not be the case here.
[pabeni@redhat.com: added leak comment]
AI Insight
LLM-synthesized narrative grounded in this CVE's description and references.
Affected products
42cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*+ 9 more
- cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*range: >=6.1.158,<6.1.168
- cpe:2.3:o:linux:linux_kernel:6.18:-:*:*:*:*:*:*
- cpe:2.3:o:linux:linux_kernel:7.0:rc1:*:*:*:*:*:*
- cpe:2.3:o:linux:linux_kernel:7.0:rc2:*:*:*:*:*:*
- cpe:2.3:o:linux:linux_kernel:7.0:rc3:*:*:*:*:*:*
- cpe:2.3:o:linux:linux_kernel:7.0:rc4:*:*:*:*:*:*
- cpe:2.3:o:linux:linux_kernel:7.0:rc5:*:*:*:*:*:*
- cpe:2.3:o:linux:linux_kernel:7.0:rc6:*:*:*:*:*:*
- cpe:2.3:o:linux:linux_kernel:7.0:rc7:*:*:*:*:*:*
- (no CPE)
- osv-coords32 versionspkg:rpm/opensuse/dtb-aarch64&distro=openSUSE%20Leap%2016.0pkg:rpm/opensuse/kernel-64kb&distro=openSUSE%20Leap%2016.0pkg:rpm/opensuse/kernel-azure&distro=openSUSE%20Leap%2016.0pkg:rpm/opensuse/kernel-default-base&distro=openSUSE%20Leap%2016.0pkg:rpm/opensuse/kernel-default&distro=openSUSE%20Leap%2016.0pkg:rpm/opensuse/kernel-docs&distro=openSUSE%20Leap%2016.0pkg:rpm/opensuse/kernel-kvmsmall&distro=openSUSE%20Leap%2016.0pkg:rpm/opensuse/kernel-obs-build&distro=openSUSE%20Leap%2016.0pkg:rpm/opensuse/kernel-obs-qa&distro=openSUSE%20Leap%2016.0pkg:rpm/opensuse/kernel-rt&distro=openSUSE%20Leap%2016.0pkg:rpm/opensuse/kernel-source&distro=openSUSE%20Leap%2016.0pkg:rpm/opensuse/kernel-syms&distro=openSUSE%20Leap%2016.0pkg:rpm/opensuse/kernel-zfcpdump&distro=openSUSE%20Leap%2016.0pkg:rpm/suse/kernel-64kb&distro=SUSE%20Linux%20Micro%206.2pkg:rpm/suse/kernel-default-base&distro=SUSE%20Linux%20Micro%206.0pkg:rpm/suse/kernel-default-base&distro=SUSE%20Linux%20Micro%206.1pkg:rpm/suse/kernel-default-base&distro=SUSE%20Linux%20Micro%206.2pkg:rpm/suse/kernel-default&distro=SUSE%20Linux%20Micro%206.0pkg:rpm/suse/kernel-default&distro=SUSE%20Linux%20Micro%206.1pkg:rpm/suse/kernel-default&distro=SUSE%20Linux%20Micro%206.2pkg:rpm/suse/kernel-kvmsmall&distro=SUSE%20Linux%20Micro%206.0pkg:rpm/suse/kernel-kvmsmall&distro=SUSE%20Linux%20Micro%206.1pkg:rpm/suse/kernel-livepatch-SLE15-SP7-RT_Update_11&distro=SUSE%20Linux%20Enterprise%20Live%20Patching%2015%20SP7pkg:rpm/suse/kernel-rt&distro=SUSE%20Linux%20Micro%206.1pkg:rpm/suse/kernel-rt&distro=SUSE%20Linux%20Micro%206.2pkg:rpm/suse/kernel-rt&distro=SUSE%20Real%20Time%20Module%2015%20SP7pkg:rpm/suse/kernel-source&distro=SUSE%20Linux%20Micro%206.0pkg:rpm/suse/kernel-source&distro=SUSE%20Linux%20Micro%206.1pkg:rpm/suse/kernel-source&distro=SUSE%20Linux%20Micro%206.2pkg:rpm/suse/kernel-source-rt&distro=SUSE%20Linux%20Micro%206.1pkg:rpm/suse/kernel-source-rt&distro=SUSE%20Real%20Time%20Module%2015%20SP7pkg:rpm/suse/kernel-syms-rt&distro=SUSE%20Real%20Time%20Module%2015%20SP7
< 6.12.0-160000.28.1+ 31 more
- (no CPE)range: < 6.12.0-160000.28.1
- (no CPE)range: < 6.12.0-160000.28.1
- (no CPE)range: < 6.12.0-160000.28.1
- (no CPE)range: < 6.12.0-160000.27.1.160000.2.8
- (no CPE)range: < 6.12.0-160000.28.1
- (no CPE)range: < 6.12.0-160000.28.1
- (no CPE)range: < 6.12.0-160000.28.1
- (no CPE)range: < 6.12.0-160000.28.1
- (no CPE)range: < 6.12.0-160000.28.1
- (no CPE)range: < 6.12.0-160000.28.1
- (no CPE)range: < 6.12.0-160000.28.1
- (no CPE)range: < 6.12.0-160000.28.1
- (no CPE)range: < 6.12.0-160000.28.1
- (no CPE)range: < 6.12.0-160000.28.1
- (no CPE)range: < 6.4.0-41.1.21.18
- (no CPE)range: < 6.4.0-41.1.21.18
- (no CPE)range: < 6.12.0-160000.27.1.160000.2.8
- (no CPE)range: < 6.4.0-41.1
- (no CPE)range: < 6.4.0-41.1
- (no CPE)range: < 6.12.0-160000.28.1
- (no CPE)range: < 6.4.0-41.1
- (no CPE)range: < 6.4.0-41.1
- (no CPE)range: < 1-150700.1.3.1
- (no CPE)range: < 6.4.0-41.1
- (no CPE)range: < 6.12.0-160000.28.1
- (no CPE)range: < 6.4.0-150700.7.37.2
- (no CPE)range: < 6.4.0-41.1
- (no CPE)range: < 6.4.0-41.1
- (no CPE)range: < 6.12.0-160000.28.1
- (no CPE)range: < 6.4.0-41.1
- (no CPE)range: < 6.4.0-150700.7.37.2
- (no CPE)range: < 6.4.0-150700.7.37.1
Patches
Vulnerability mechanics
References
6- git.kernel.org/stable/c/2dcf324855c34e7f934ce978aa19b645a8f3ee71nvdPatch
- git.kernel.org/stable/c/6dc11e0bd0a5466bcc76d275c09e5537bd0597ddnvdPatch
- git.kernel.org/stable/c/84a8335d8300576f1b377ae24abca1d9f197807fnvdPatch
- git.kernel.org/stable/c/9f557c7eae127b44d2e863917dc986a4b6cb1269nvdPatch
- git.kernel.org/stable/c/ac435be7c7613eb13a5a8ceb5182e10b50c9ce87nvdPatch
- git.kernel.org/stable/c/fd8037e1f18ca5336934d0e0e7e1a4fe097e749dnvdPatch
News mentions
0No linked articles in our index yet.