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