In the Linux kernel, the following vulnerability has been resolved:
net/handshake: Drain pending requests at net namespace exit
The arguments to list_splice_init() in handshake_net_exit() are reversed. The call moves the local empty "requests" list onto hn->hn_requests, leaving the local list empty, so the subsequent drain loop runs zero iterations. Pending handshake requests that had not yet been accepted are not torn down when the net namespace is destroyed; each one keeps a reference on a socket file and on the handshake_req allocation.
Pass the source and destination in the documented order (list_splice_init(list, head) moves list onto head) so the pending list is transferred to the local scratch list and drained through handshake_complete().
Fixing the splice direction exposes a list-corruption race. After the splice each req->hr_list still has non-empty link pointers, threading the stack-local scratch list rather than hn_requests. A concurrent handshake_req_cancel() -- for example, from sunrpc's TLS timeout on a kernel socket whose netns reference was not taken -- finds the request through the rhashtable, calls remove_pending(), and sees !list_empty(&req->hr_list). __remove_pending_locked() then list_del_init()s an entry off the scratch list while the drain iterates, corrupting it. The same call arriving after the drain loop has run list_del() on an entry hits LIST_POISON instead.
Have remove_pending() check HANDSHAKE_F_NET_DRAINING under hn_lock and report not-found when drain is in progress. The drain has already taken ownership; handshake_complete()'s existing test_and_set on HANDSHAKE_F_REQ_COMPLETED still arbitrates between drain and cancel for who calls the consumer's hp_done. Use list_del_init() rather than list_del() in the drain so req->hr_list does not carry LIST_POISON after drain releases the entry.
The DRAINING guard in remove_pending() makes cancel return false, but cancel still falls through to test_and_set_bit on HANDSHAKE_F_REQ_COMPLETED and drops the request's hr_file reference. Without another pin, if that is the last reference, sk_destruct frees the request while it is still linked on the drain loop's local list. Pin each request's hr_file under hn_lock before releasing the list, and drop that drain pin after the loop finishes with the request.
| Product | Vendor Advisory | Solution File | Added | Published |
|---|---|---|---|---|
| Amazon_linux_2023 | — | Upgrade bpftool6.12-debuginfoUpgrade kernel6.18-develUpgrade kernel6.18Upgrade kernel6.18-debuginfo-common-x86_64Upgrade kernel6.12-develUpgrade kernel-livepatch-6.12.94-123.174Upgrade kernel6.18-headersUpgrade kernel6.18-debuginfo-common-aarch64Upgrade kernel6.18-modules-extra-commonUpgrade kernel6.12-tools-debuginfoUpgrade kernel6.18-tools-develUpgrade perf6.12-debuginfoUpgrade kernel6.12-debuginfo-common-aarch64Upgrade kernel6.12-debuginfo-common-x86_64Upgrade bpftool6.18-debuginfoUpgrade kernel6.18-debuginfoUpgrade kernel6.18-modules-extraUpgrade kernel6.12-tools-develUpgrade kernel6.12-debuginfoUpgrade kernel6.12-toolsUpgrade perf6.12Upgrade perf6.18-debuginfoUpgrade bpftool6.18Upgrade python3-perf6.12-debuginfoUpgrade kernel6.12-headersUpgrade microvm-kernel6.18Upgrade kernel6.18-toolsUpgrade kernel6.12-modules-extra-commonUpgrade kernel6.12Upgrade kernel6.12-modules-extraUpgrade python3-perf6.12Upgrade python3-perf6.18-debuginfoUpgrade python3-perf6.18Upgrade kernel6.18-tools-debuginfoUpgrade bpftool6.12Upgrade perf6.18Upgrade kernel-livepatch-6.18.44-99.149 | Aug 10, 2026 | Jul 19, 2026 |
| Debian | — | Upgrade linux | Jul 23, 2026 | Jul 23, 2026 |
| Redhat_linux | — | No solution exists | Jul 23, 2026 | Jul 19, 2026 |
| Ubuntu | — | Upgrade linux-image-raspi-realtimeUpgrade linux-image-gcp-7.0Upgrade linux-image-nvidia-64k-7.0Upgrade linux-image-7.0.0-1008-oracle-64kUpgrade linux-image-aws-64kUpgrade linux-image-nvidia-tegra-6.8Upgrade linux-image-oracle-7.0Upgrade linux-image-nvidia-tegra-rtUpgrade linux-image-6.8.0-1035-nvidia-tegraUpgrade linux-image-nvidia-bos-7.0Upgrade linux-image-7.0.0-1011-gcpUpgrade linux-image-oracleUpgrade linux-image-7.0.0-1011-oracleUpgrade linux-image-7.0.0-1015-raspi-realtimeUpgrade linux-image-7.0.0-1009-aws-64kUpgrade linux-image-ibmUpgrade linux-image-gcpUpgrade linux-image-nvidiaUpgrade linux-image-7.0.0-1010-azureUpgrade linux-image-7.0.0-1009-azure-fdeUpgrade linux-image-nvidia-tegraUpgrade linux-image-ibm-7.0Upgrade linux-image-azure-fde-7.0Upgrade linux-image-7.0.0-1009-awsUpgrade linux-image-7.0.0-2016-nvidia-bosUpgrade linux-image-azure-fdeUpgrade linux-image-aws-64k-7.0Upgrade linux-image-oracle-64k-7.0Upgrade linux-image-nvidia-tegra-rt-6.8Upgrade linux-image-nvidia-64k-hwe-26.04Upgrade linux-image-azure-7.0Upgrade linux-image-nvidia-hwe-26.04Upgrade linux-image-7.0.0-1011-oracle-64kUpgrade linux-image-7.0.0-1011-gcp-64kUpgrade linux-image-azureUpgrade linux-image-7.0.0-2016-nvidia-bos-64kUpgrade linux-image-7.0.0-1016-nvidiaUpgrade linux-image-7.0.0-1008-oracleUpgrade linux-image-raspiUpgrade linux-image-6.8.0-1035-nvidia-tegra-rtUpgrade linux-image-raspi-realtime-7.0Upgrade linux-image-7.0.0-1010-ibmUpgrade linux-image-raspi-7.0Upgrade linux-image-nvidia-7.0Upgrade linux-image-nvidia-64kUpgrade linux-image-oracle-64kUpgrade linux-image-gcp-64k-7.0Upgrade linux-image-gcp-64kUpgrade linux-image-aws-7.0Upgrade linux-image-7.0.0-1016-nvidia-64kUpgrade linux-image-nvidia-bosUpgrade linux-image-7.0.0-1015-raspiUpgrade linux-image-nvidia-bos-64k-7.0Upgrade linux-image-7.0.0-1014-azureUpgrade linux-image-nvidia-bos-64kUpgrade linux-image-aws | Jul 21, 2026 | Jul 20, 2026 |
| Vmware Photon_os | — | Use 'tdnf update' to upgrade all packages to the latest version. | Aug 3, 2026 | Jul 19, 2026 |
With curated Threat Intelligence, you can see which vulnerabilities truly put you at risk, prioritize what matters most, and act before attackers do.
Explore Intelligence Hub