In the Linux kernel, the following vulnerability has been resolved:
af_unix: Call kfree_skb() for dead unix_(sk)->oob_skb in GC.
syzbot reported a warning [0] in __unix_gc() with a repro, which creates a socketpair and sends one socket's fd to itself using the peer.
socketpair(AF_UNIX, SOCK_STREAM, 0, [3, 4]) = 0 sendmsg(4, {msg_name=NULL, msg_namelen=0, msg_iov=[{iov_base="\360", iov_len=1}], msg_iovlen=1, msg_control=[{cmsg_len=20, cmsg_level=SOL_SOCKET, cmsg_type=SCM_RIGHTS, cmsg_data=[3]}], msg_controllen=24, msg_flags=0}, MSG_OOB|MSG_PROBE|MSG_DONTWAIT|MSG_ZEROCOPY) = 1
This forms a self-cyclic reference that GC should finally untangle but does not due to lack of MSG_OOB handling, resulting in memory leak.
Recently, commit 11498715f266 ("af_unix: Remove io_uring code for GC.") removed io_uring's dead code in GC and revealed the problem.
The code was executed at the final stage of GC and unconditionally moved all GC candidates from gc_candidates to gc_inflight_list. That papered over the reported problem by always making the following WARN_ON_ONCE(!list_empty(&gc_candidates)) false.
The problem has been there since commit 2aab4b969002 ("af_unix: fix struct pid leaks in OOB support") added full scm support for MSG_OOB while fixing another bug.
To fix this problem, we must call kfree_skb() for unix_sk(sk)->oob_skb if the socket still exists in gc_candidates after purging collected skb.
Then, we need to set NULL to oob_skb before calling kfree_skb() because it calls last fput() and triggers unix_release_sock(), where we call duplicate kfree_skb(u->oob_skb) if not NULL.
Note that the leaked socket remained being linked to a global list, so kmemleak also could not detect it. We need to check /proc/net/protocol to notice the unfreed socket.
[0]: WARNING: CPU: 0 PID: 2863 at net/unix/garbage.c:345 __unix_gc+0xc74/0xe80 net/unix/garbage.c:345 Modules linked in: CPU: 0 PID: 2863 Comm: kworker/u4:11 Not tainted 6.8.0-rc1-syzkaller-00583-g1701940b1a02 #0 Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 01/25/2024 Workqueue: events_unbound __unix_gc RIP: 0010:__unix_gc+0xc74/0xe80 net/unix/garbage.c:345 Code: 8b 5c 24 50 e9 86 f8 ff ff e8 f8 e4 22 f8 31 d2 48 c7 c6 30 6a 69 89 4c 89 ef e8 97 ef ff ff e9 80 f9 ff ff e8 dd e4 22 f8 90 <0f> 0b 90 e9 7b fd ff ff 48 89 df e8 5c e7 7c f8 e9 d3 f8 ff ff e8 RSP: 0018:ffffc9000b03fba0 EFLAGS: 00010293 RAX: 0000000000000000 RBX: ffffc9000b03fc10 RCX: ffffffff816c493e RDX: ffff88802c02d940 RSI: ffffffff896982f3 RDI: ffffc9000b03fb30 RBP: ffffc9000b03fce0 R08: 0000000000000001 R09: fffff52001607f66 R10: 0000000000000003 R11: 0000000000000002 R12: dffffc0000000000 R13: ffffc9000b03fc10 R14: ffffc9000b03fc10 R15: 0000000000000001 FS: 0000000000000000(0000) GS:ffff8880b9400000(0000) knlGS:0000000000000000 CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033 CR2: 00005559c8677a60 CR3: 000000000d57a000 CR4: 00000000003506f0 DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000 DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400 Call Trace: <TASK> process_one_work+0x889/0x15e0 kernel/workqueue.c:2633 process_scheduled_works kernel/workqueue.c:2706 [inline] worker_thread+0x8b9/0x12a0 kernel/workqueue.c:2787 kthread+0x2c6/0x3b0 kernel/kthread.c:388 ret_from_fork+0x45/0x80 arch/x86/kernel/process.c:147 ret_from_fork_asm+0x1b/0x30 arch/x86/entry/entry_64.S:242 </TASK>
CVSS Details
- CVSS 3.1 Base Score: 5.5
- CVSS 3.1 Vector: (CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H)
Covered by Rapid7
| Product | Vendor Advisory | Solution File | Added | Published |
|---|---|---|---|---|
| Amazon Linux Ami 2 | — | Upgrade python-perfUpgrade kernel-debuginfoUpgrade kernel-tools-debuginfoUpgrade python-perf-debuginfoUpgrade bpftool-debuginfoUpgrade perf-debuginfoUpgrade kernel-headersUpgrade perfUpgrade kernel-debuginfo-common-aarch64Upgrade bpftoolUpgrade kernel-tools-develUpgrade kernel-livepatch-5.15.149-99.161Upgrade kernel-toolsUpgrade kernel-debuginfo-common-x86_64Upgrade kernelUpgrade kernel-devel | Aug 28, 2024 | Apr 2, 2024 |
| Amazon_linux_2023 | — | Upgrade kernelUpgrade bpftool-debuginfoUpgrade python3-perf-debuginfoUpgrade kernel-libbpf-staticUpgrade kernel-headersUpgrade bpftoolUpgrade kernel-modules-extra-commonUpgrade kernel-debuginfo-common-x86_64Upgrade kernel-libbpf-develUpgrade kernel-modules-extraUpgrade kernel-livepatch-6.1.79-99.164Upgrade kernel-tools-develUpgrade perf-debuginfoUpgrade perfUpgrade kernel-tools-debuginfoUpgrade kernel-debuginfo-common-aarch64Upgrade kernel-libbpfUpgrade kernel-toolsUpgrade python3-perfUpgrade kernel-debuginfoUpgrade kernel-devel | Feb 17, 2025 | Apr 2, 2024 |
| Debian | — | Upgrade linux | Jul 30, 2024 | Apr 2, 2024 |
| Suse | — | Upgrade kernel-obs-buildUpgrade kernel-rt-develUpgrade kernel-source-vanillaUpgrade kernel-debugUpgrade kernel-rt_debug-livepatch-develUpgrade dtb-socionextUpgrade dlm-kmp-defaultUpgrade dtb-renesasUpgrade kernel-default-livepatch-develUpgrade kernel-azureUpgrade dtb-appleUpgrade dtb-caviumUpgrade gfs2-kmp-azureUpgrade kernel-kvmsmall-livepatch-develUpgrade reiserfs-kmp-defaultUpgrade dtb-alteraUpgrade kernel-rt_debugUpgrade dlm-kmp-rtUpgrade kernel-64kb-develUpgrade dtb-hisiliconUpgrade kernel-docsUpgrade dtb-sprdUpgrade gfs2-kmp-defaultUpgrade reiserfs-kmp-64kbUpgrade kernel-rt-extraUpgrade kselftests-kmp-azureUpgrade kernel-defaultUpgrade dtb-marvellUpgrade kernel-64kb-optionalUpgrade kernel-source-rtUpgrade kernel-debug-vdsoUpgrade kselftests-kmp-rtUpgrade kernel-default-optionalUpgrade kernel-devel-rtUpgrade dtb-allwinnerUpgrade dtb-amdUpgrade kernel-64kb-extraUpgrade kernel-azure-extraUpgrade kernel-default-baseUpgrade dtb-nvidiaUpgrade cluster-md-kmp-64kbUpgrade kernel-rt_debug-develUpgrade kernel-develUpgrade kernel-debug-develUpgrade ocfs2-kmp-64kbUpgrade dtb-xilinxUpgrade reiserfs-kmp-rtUpgrade dtb-mediatekUpgrade cluster-md-kmp-rtUpgrade kernel-azure-optionalUpgrade ocfs2-kmp-defaultUpgrade ocfs2-kmp-azureUpgrade kernel-rt-optionalUpgrade dtb-exynosUpgrade kernel-default-extraUpgrade reiserfs-kmp-azureUpgrade dlm-kmp-azureUpgrade ocfs2-kmp-rtUpgrade kernel-symsUpgrade kernel-sourceUpgrade kselftests-kmp-defaultUpgrade kernel-source-azureUpgrade kernel-devel-azureUpgrade kernel-64kbUpgrade cluster-md-kmp-defaultUpgrade kernel-syms-azureUpgrade dtb-qcomUpgrade kernel-macrosUpgrade kernel-rt-livepatch-develUpgrade kernel-default-base-rebuildUpgrade dtb-apmUpgrade kernel-kvmsmall-develUpgrade dtb-armUpgrade kernel-rt-vdsoUpgrade kernel-azure-vdsoUpgrade kernel-kvmsmall-vdsoUpgrade gfs2-kmp-64kbUpgrade kernel-obs-qaUpgrade kselftests-kmp-64kbUpgrade kernel-zfcpdumpUpgrade kernel-docs-htmlUpgrade kernel-default-vdsoUpgrade kernel-azure-develUpgrade dtb-broadcomUpgrade dtb-amazonUpgrade kernel-syms-rtUpgrade dtb-lgUpgrade dlm-kmp-64kbUpgrade cluster-md-kmp-azureUpgrade kernel-rt_debug-vdsoUpgrade gfs2-kmp-rtUpgrade kernel-64kb-livepatch-develUpgrade dtb-rockchipUpgrade dtb-amlogicUpgrade kernel-kvmsmallUpgrade kernel-default-livepatchUpgrade kernel-rtUpgrade kernel-default-develUpgrade kernel-debug-livepatch-develUpgrade kernel-azure-livepatch-develUpgrade dtb-freescale | Jul 23, 2024 | Apr 2, 2024 |
| Ubuntu | — | Upgrade linux-image-azureUpgrade linux-image-5.15.0-1044-gkeopUpgrade linux-image-raspi-nolpaeUpgrade linux-image-5.15.0-1058-kvmUpgrade linux-image-nvidia-lowlatencyUpgrade linux-image-6.5.0-1017-starfiveUpgrade linux-image-lowlatency-64k-hwe-20.04Upgrade linux-image-aws-lts-22.04Upgrade linux-image-5.15.0-1063-azureUpgrade linux-image-6.5.0-1024-gcpUpgrade linux-image-5.15.0-1058-gkeUpgrade linux-image-lowlatencyUpgrade linux-image-6.5.0-44-lowlatency-64kUpgrade linux-image-5.15.0-106-lowlatency-64kUpgrade linux-image-6.5.0-1023-nvidiaUpgrade linux-image-starfiveUpgrade linux-image-lowlatency-hwe-20.04Upgrade linux-image-raspiUpgrade linux-image-azure-fdeUpgrade linux-image-5.15.0-1054-ibmUpgrade linux-image-5.15.0-1054-raspiUpgrade linux-image-generic-hwe-22.04Upgrade linux-image-nvidia-64k-6.5Upgrade linux-image-generic-64k-hwe-20.04Upgrade linux-image-6.5.0-1027-oemUpgrade linux-image-lowlatency-hwe-22.04Upgrade linux-image-oem-22.04aUpgrade linux-image-virtual-hwe-20.04Upgrade linux-image-kvmUpgrade linux-image-5.15.0-1061-awsUpgrade linux-image-awsUpgrade linux-image-gke-5.15Upgrade linux-image-oem-20.04dUpgrade linux-image-ibmUpgrade linux-image-generic-hwe-20.04Upgrade linux-image-oem-22.04bUpgrade linux-image-6.5.0-1024-azure-fdeUpgrade linux-image-azure-cvmUpgrade linux-image-6.5.0-44-generic-64kUpgrade linux-image-5.15.0-1063-azure-fdeUpgrade linux-image-nvidia-6.5Upgrade linux-image-5.15.0-106-lowlatencyUpgrade linux-image-6.5.0-1026-oracleUpgrade linux-image-6.5.0-1020-raspiUpgrade linux-image-oem-22.04cUpgrade linux-image-azure-lts-22.04Upgrade linux-image-6.5.0-1026-oracle-64kUpgrade linux-image-6.5.0-1024-azureUpgrade linux-image-5.15.0-106-genericUpgrade linux-image-oem-22.04Upgrade linux-image-nvidiaUpgrade linux-image-oracle-64kUpgrade linux-image-6.5.0-44-lowlatencyUpgrade linux-image-oem-22.04dUpgrade linux-image-genericUpgrade linux-image-virtual-hwe-22.04Upgrade linux-image-lowlatency-64kUpgrade linux-image-oem-20.04Upgrade linux-image-generic-lpae-hwe-20.04Upgrade linux-image-6.5.0-1023-awsUpgrade linux-image-intel-iotgUpgrade linux-image-5.15.0-1054-nvidiaUpgrade linux-image-azure-fde-lts-22.04Upgrade linux-image-oracle-lts-22.04Upgrade linux-image-5.15.0-106-generic-64kUpgrade linux-image-6.5.0-1023-nvidia-64kUpgrade linux-image-nvidia-64k-hwe-22.04Upgrade linux-image-5.15.0-1059-oracleUpgrade linux-image-5.15.0-106-generic-lpaeUpgrade linux-image-virtualUpgrade linux-image-oem-20.04cUpgrade linux-image-gcpUpgrade linux-image-gkeop-5.15Upgrade linux-image-oem-20.04bUpgrade linux-image-gcp-lts-22.04Upgrade linux-image-gkeopUpgrade linux-image-generic-64kUpgrade linux-image-oracleUpgrade linux-image-generic-lpaeUpgrade linux-image-5.15.0-1054-nvidia-lowlatencyUpgrade linux-image-lowlatency-64k-hwe-22.04Upgrade linux-image-generic-64k-hwe-22.04Upgrade linux-image-5.15.0-1058-intel-iotgUpgrade linux-image-5.15.0-1059-gcpUpgrade linux-image-5.15.0-1057-intel-iotgUpgrade linux-image-6.5.0-44-genericUpgrade linux-image-nvidia-hwe-22.04Upgrade linux-image-intelUpgrade linux-image-gke | May 17, 2024 | Apr 2, 2024 |
| Vmware Photon_os | — | Use 'tdnf update' to upgrade all packages to the latest version. | Oct 14, 2025 | Apr 2, 2024 |
Prioritise with Active Threat Intelligence
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