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 bpftool-debuginfoUpgrade perfUpgrade perf-debuginfoUpgrade python-perfUpgrade kernel-debuginfoUpgrade python-perf-debuginfoUpgrade kernel-headersUpgrade kernel-tools-debuginfoUpgrade kernel-debuginfo-common-aarch64Upgrade kernel-develUpgrade bpftoolUpgrade kernel-tools-develUpgrade kernel-debuginfo-common-x86_64Upgrade kernelUpgrade kernel-toolsUpgrade kernel-livepatch-5.15.149-99.161 | Aug 28, 2024 | Apr 2, 2024 |
| Amazon_linux_2023 | — | Upgrade bpftool-debuginfoUpgrade python3-perf-debuginfoUpgrade kernel-headersUpgrade bpftoolUpgrade kernel-libbpf-staticUpgrade kernel-debuginfo-common-x86_64Upgrade kernelUpgrade kernel-modules-extra-commonUpgrade kernel-libbpf-develUpgrade kernel-modules-extraUpgrade kernel-libbpfUpgrade kernel-debuginfo-common-aarch64Upgrade kernel-debuginfoUpgrade kernel-tools-debuginfoUpgrade kernel-toolsUpgrade kernel-livepatch-6.1.79-99.164Upgrade kernel-tools-develUpgrade perfUpgrade perf-debuginfoUpgrade python3-perfUpgrade kernel-devel | Feb 17, 2025 | Apr 2, 2024 |
| Debian | — | Upgrade linux | Jul 30, 2024 | Apr 2, 2024 |
| Suse | — | Upgrade dlm-kmp-defaultUpgrade dlm-kmp-rtUpgrade kernel-rt-optionalUpgrade kernel-azure-optionalUpgrade dtb-hisiliconUpgrade dtb-appleUpgrade kernel-debug-vdsoUpgrade dtb-caviumUpgrade cluster-md-kmp-rtUpgrade reiserfs-kmp-rtUpgrade dtb-xilinxUpgrade dtb-nvidiaUpgrade kernel-default-livepatch-develUpgrade dtb-mediatekUpgrade kernel-develUpgrade kernel-rt_debugUpgrade kernel-source-vanillaUpgrade kernel-debugUpgrade gfs2-kmp-defaultUpgrade gfs2-kmp-azureUpgrade kernel-rt_debug-livepatch-develUpgrade ocfs2-kmp-azureUpgrade kernel-64kb-develUpgrade kernel-azureUpgrade reiserfs-kmp-defaultUpgrade dtb-alteraUpgrade kernel-rt_debug-develUpgrade dtb-socionextUpgrade kernel-source-rtUpgrade dtb-marvellUpgrade kernel-docsUpgrade kselftests-kmp-azureUpgrade kernel-rt-extraUpgrade kselftests-kmp-rtUpgrade kernel-devel-rtUpgrade kernel-kvmsmall-livepatch-develUpgrade dtb-sprdUpgrade kernel-default-baseUpgrade kernel-default-optionalUpgrade kernel-64kb-extraUpgrade dtb-allwinnerUpgrade kernel-azure-extraUpgrade dtb-renesasUpgrade dtb-amdUpgrade kernel-obs-buildUpgrade ocfs2-kmp-defaultUpgrade kernel-debug-develUpgrade kernel-64kb-optionalUpgrade ocfs2-kmp-64kbUpgrade kernel-defaultUpgrade cluster-md-kmp-64kbUpgrade reiserfs-kmp-64kbUpgrade kernel-rt-develUpgrade dtb-armUpgrade kernel-rt-vdsoUpgrade kernel-default-vdsoUpgrade kernel-azure-vdsoUpgrade kernel-obs-qaUpgrade dtb-broadcomUpgrade dtb-amazonUpgrade kernel-rt_debug-vdsoUpgrade dlm-kmp-64kbUpgrade gfs2-kmp-rtUpgrade dtb-amlogicUpgrade cluster-md-kmp-azureUpgrade dtb-lgUpgrade kernel-rt-livepatch-develUpgrade kernel-64kb-livepatch-develUpgrade dtb-rockchipUpgrade kselftests-kmp-64kbUpgrade kernel-zfcpdumpUpgrade kernel-azure-develUpgrade gfs2-kmp-64kbUpgrade reiserfs-kmp-azureUpgrade kernel-syms-rtUpgrade kernel-docs-htmlUpgrade kernel-kvmsmall-develUpgrade kernel-default-base-rebuildUpgrade dtb-apmUpgrade kernel-macrosUpgrade kernel-kvmsmallUpgrade kernel-default-livepatchUpgrade kernel-default-develUpgrade kernel-azure-livepatch-develUpgrade dtb-exynosUpgrade ocfs2-kmp-rtUpgrade dlm-kmp-azureUpgrade kernel-sourceUpgrade kernel-rtUpgrade kernel-symsUpgrade kernel-debug-livepatch-develUpgrade dtb-freescaleUpgrade dtb-qcomUpgrade kernel-default-extraUpgrade kernel-64kbUpgrade cluster-md-kmp-defaultUpgrade kselftests-kmp-defaultUpgrade kernel-syms-azureUpgrade kernel-source-azureUpgrade kernel-devel-azureUpgrade kernel-kvmsmall-vdso | Jul 23, 2024 | Apr 2, 2024 |
| Ubuntu | — | Upgrade linux-image-6.5.0-1024-azure-fdeUpgrade linux-image-nvidia-6.5Upgrade linux-image-5.15.0-1054-raspiUpgrade linux-image-generic-hwe-22.04Upgrade linux-image-oem-20.04dUpgrade linux-image-lowlatency-hwe-20.04Upgrade linux-image-raspi-nolpaeUpgrade linux-image-6.5.0-1017-starfiveUpgrade linux-image-6.5.0-1023-nvidiaUpgrade linux-image-5.15.0-1063-azureUpgrade linux-image-awsUpgrade linux-image-gke-5.15Upgrade linux-image-6.5.0-1024-gcpUpgrade linux-image-6.5.0-1026-oracleUpgrade linux-image-raspiUpgrade linux-image-6.5.0-44-lowlatency-64kUpgrade linux-image-5.15.0-1058-kvmUpgrade linux-image-6.5.0-1027-oemUpgrade linux-image-nvidia-64k-6.5Upgrade linux-image-lowlatency-hwe-22.04Upgrade linux-image-5.15.0-1054-ibmUpgrade linux-image-azureUpgrade linux-image-azure-fdeUpgrade linux-image-5.15.0-106-lowlatencyUpgrade linux-image-virtual-hwe-20.04Upgrade linux-image-5.15.0-1044-gkeopUpgrade linux-image-6.5.0-44-generic-64kUpgrade linux-image-oem-22.04bUpgrade linux-image-5.15.0-106-lowlatency-64kUpgrade linux-image-nvidia-lowlatencyUpgrade linux-image-5.15.0-1063-azure-fdeUpgrade linux-image-aws-lts-22.04Upgrade linux-image-azure-cvmUpgrade linux-image-lowlatencyUpgrade linux-image-5.15.0-1061-awsUpgrade linux-image-generic-64k-hwe-20.04Upgrade linux-image-oem-22.04aUpgrade linux-image-5.15.0-1058-gkeUpgrade linux-image-lowlatency-64k-hwe-20.04Upgrade linux-image-starfiveUpgrade linux-image-ibmUpgrade linux-image-generic-hwe-20.04Upgrade linux-image-kvmUpgrade linux-image-oracle-64kUpgrade linux-image-nvidia-hwe-22.04Upgrade linux-image-6.5.0-1026-oracle-64kUpgrade linux-image-azure-lts-22.04Upgrade linux-image-lowlatency-64k-hwe-22.04Upgrade linux-image-5.15.0-1057-intel-iotgUpgrade linux-image-oem-22.04cUpgrade linux-image-6.5.0-1020-raspiUpgrade linux-image-6.5.0-1023-awsUpgrade linux-image-oracle-lts-22.04Upgrade linux-image-5.15.0-1054-nvidiaUpgrade linux-image-5.15.0-106-generic-64kUpgrade linux-image-oem-22.04dUpgrade linux-image-generic-lpae-hwe-20.04Upgrade linux-image-lowlatency-64kUpgrade linux-image-intel-iotgUpgrade linux-image-oem-20.04bUpgrade linux-image-virtual-hwe-22.04Upgrade linux-image-genericUpgrade linux-image-5.15.0-1059-gcpUpgrade linux-image-oem-20.04Upgrade linux-image-virtualUpgrade linux-image-gkeop-5.15Upgrade linux-image-generic-64kUpgrade linux-image-oem-20.04cUpgrade linux-image-5.15.0-1054-nvidia-lowlatencyUpgrade linux-image-azure-fde-lts-22.04Upgrade linux-image-oracleUpgrade linux-image-6.5.0-1023-nvidia-64kUpgrade linux-image-nvidiaUpgrade linux-image-nvidia-64k-hwe-22.04Upgrade linux-image-5.15.0-106-genericUpgrade linux-image-5.15.0-106-generic-lpaeUpgrade linux-image-oem-22.04Upgrade linux-image-5.15.0-1059-oracleUpgrade linux-image-6.5.0-44-lowlatencyUpgrade linux-image-gcpUpgrade linux-image-generic-lpaeUpgrade linux-image-gcp-lts-22.04Upgrade linux-image-generic-64k-hwe-22.04Upgrade linux-image-5.15.0-1058-intel-iotgUpgrade linux-image-gkeopUpgrade linux-image-gkeUpgrade linux-image-intelUpgrade linux-image-6.5.0-1024-azureUpgrade linux-image-6.5.0-44-generic | 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