[syzbot] [virt?] [net?] memory leak in __vsock_create (2)

8 views
Skip to first unread message

syzbot

unread,
Apr 23, 2026, 10:02:35 PMApr 23
to da...@davemloft.net, edum...@google.com, ho...@kernel.org, ku...@kernel.org, linux-...@vger.kernel.org, net...@vger.kernel.org, pab...@redhat.com, sgar...@redhat.com, syzkall...@googlegroups.com, virtual...@lists.linux.dev
Hello,

syzbot found the following issue on:

HEAD commit: 1f318b96cc84 Linux 7.0-rc3
git tree: upstream
console output: https://syzkaller.appspot.com/x/log.txt?x=14db28ba580000
kernel config: https://syzkaller.appspot.com/x/.config?x=2c6ad6fefffa76b1
dashboard link: https://syzkaller.appspot.com/bug?extid=1b2c9c4a0f8708082678
compiler: gcc (Debian 14.2.0-19) 14.2.0, GNU ld (GNU Binutils for Debian) 2.44
syz repro: https://syzkaller.appspot.com/x/repro.syz?x=12db28ba580000
C reproducer: https://syzkaller.appspot.com/x/repro.c?x=1215175a580000

Downloadable assets:
disk image: https://storage.googleapis.com/syzbot-assets/d4ebd240d832/disk-1f318b96.raw.xz
vmlinux: https://storage.googleapis.com/syzbot-assets/9548f49a7dec/vmlinux-1f318b96.xz
kernel image: https://storage.googleapis.com/syzbot-assets/4e16f2bcfc7d/bzImage-1f318b96.xz

IMPORTANT: if you fix the issue, please add the following tag to the commit:
Reported-by: syzbot+1b2c9c...@syzkaller.appspotmail.com

2026/03/09 23:37:29 executed programs: 5
BUG: memory leak
unreferenced object 0xffff888128bb6d00 (size 1272):
comm "kworker/0:1", pid 10, jiffies 4294944453
hex dump (first 32 bytes):
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
28 00 0b 40 00 00 00 00 00 00 00 00 00 00 00 00 (..@............
backtrace (crc 31367ed9):
kmemleak_alloc_recursive include/linux/kmemleak.h:44 [inline]
slab_post_alloc_hook mm/slub.c:4547 [inline]
slab_alloc_node mm/slub.c:4869 [inline]
kmem_cache_alloc_noprof+0x372/0x480 mm/slub.c:4876
sk_prot_alloc+0x3e/0x1b0 net/core/sock.c:2239
sk_alloc+0x36/0x460 net/core/sock.c:2301
__vsock_create.constprop.0+0x38/0x2f0 net/vmw_vsock/af_vsock.c:893
virtio_transport_recv_listen net/vmw_vsock/virtio_transport_common.c:1557 [inline]
virtio_transport_recv_pkt+0x855/0xfc0 net/vmw_vsock/virtio_transport_common.c:1685
vsock_loopback_work+0x104/0x140 net/vmw_vsock/vsock_loopback.c:142
process_one_work+0x26c/0x5d0 kernel/workqueue.c:3275
process_scheduled_works kernel/workqueue.c:3358 [inline]
worker_thread+0x243/0x490 kernel/workqueue.c:3439
kthread+0x14e/0x1a0 kernel/kthread.c:436
ret_from_fork+0x23c/0x4b0 arch/x86/kernel/process.c:158
ret_from_fork_asm+0x1a/0x30 arch/x86/entry/entry_64.S:245

BUG: memory leak
unreferenced object 0xffff8881141e93a0 (size 32):
comm "kworker/0:1", pid 10, jiffies 4294944453
hex dump (first 32 bytes):
f8 6e 0a 00 81 88 ff ff 00 00 00 00 00 00 00 00 .n..............
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
backtrace (crc e7f5c8b3):
kmemleak_alloc_recursive include/linux/kmemleak.h:44 [inline]
slab_post_alloc_hook mm/slub.c:4547 [inline]
slab_alloc_node mm/slub.c:4869 [inline]
__do_kmalloc_node mm/slub.c:5262 [inline]
__kmalloc_noprof+0x3bd/0x560 mm/slub.c:5275
kmalloc_noprof include/linux/slab.h:954 [inline]
kzalloc_noprof include/linux/slab.h:1188 [inline]
lsm_blob_alloc+0x4d/0x80 security/security.c:192
lsm_sock_alloc security/security.c:4375 [inline]
security_sk_alloc+0x2d/0x290 security/security.c:4391
sk_prot_alloc+0x8f/0x1b0 net/core/sock.c:2248
sk_alloc+0x36/0x460 net/core/sock.c:2301
__vsock_create.constprop.0+0x38/0x2f0 net/vmw_vsock/af_vsock.c:893
virtio_transport_recv_listen net/vmw_vsock/virtio_transport_common.c:1557 [inline]
virtio_transport_recv_pkt+0x855/0xfc0 net/vmw_vsock/virtio_transport_common.c:1685
vsock_loopback_work+0x104/0x140 net/vmw_vsock/vsock_loopback.c:142
process_one_work+0x26c/0x5d0 kernel/workqueue.c:3275
process_scheduled_works kernel/workqueue.c:3358 [inline]
worker_thread+0x243/0x490 kernel/workqueue.c:3439
kthread+0x14e/0x1a0 kernel/kthread.c:436
ret_from_fork+0x23c/0x4b0 arch/x86/kernel/process.c:158
ret_from_fork_asm+0x1a/0x30 arch/x86/entry/entry_64.S:245

BUG: memory leak
unreferenced object 0xffff888128bfa8a0 (size 96):
comm "kworker/0:1", pid 10, jiffies 4294944453
hex dump (first 32 bytes):
00 6d bb 28 81 88 ff ff 00 00 00 00 00 00 00 00 .m.(............
00 00 00 00 00 00 00 00 00 00 04 00 00 00 00 00 ................
backtrace (crc 1fd60988):
kmemleak_alloc_recursive include/linux/kmemleak.h:44 [inline]
slab_post_alloc_hook mm/slub.c:4547 [inline]
slab_alloc_node mm/slub.c:4869 [inline]
__kmalloc_cache_noprof+0x377/0x480 mm/slub.c:5378
kmalloc_noprof include/linux/slab.h:950 [inline]
kzalloc_noprof include/linux/slab.h:1188 [inline]
virtio_transport_do_socket_init+0x2b/0xf0 net/vmw_vsock/virtio_transport_common.c:923
vsock_assign_transport+0x309/0x3a0 net/vmw_vsock/af_vsock.c:642
virtio_transport_recv_listen net/vmw_vsock/virtio_transport_common.c:1575 [inline]
virtio_transport_recv_pkt+0x8bc/0xfc0 net/vmw_vsock/virtio_transport_common.c:1685
vsock_loopback_work+0x104/0x140 net/vmw_vsock/vsock_loopback.c:142
process_one_work+0x26c/0x5d0 kernel/workqueue.c:3275
process_scheduled_works kernel/workqueue.c:3358 [inline]
worker_thread+0x243/0x490 kernel/workqueue.c:3439
kthread+0x14e/0x1a0 kernel/kthread.c:436
ret_from_fork+0x23c/0x4b0 arch/x86/kernel/process.c:158
ret_from_fork_asm+0x1a/0x30 arch/x86/entry/entry_64.S:245

BUG: memory leak
unreferenced object 0xffff888129e1e800 (size 1272):
comm "kworker/1:3", pid 5832, jiffies 4294944454
hex dump (first 32 bytes):
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
28 00 0b 40 00 00 00 00 00 00 00 00 00 00 00 00 (..@............
backtrace (crc 4bfb7c57):
kmemleak_alloc_recursive include/linux/kmemleak.h:44 [inline]
slab_post_alloc_hook mm/slub.c:4547 [inline]
slab_alloc_node mm/slub.c:4869 [inline]
kmem_cache_alloc_noprof+0x372/0x480 mm/slub.c:4876
sk_prot_alloc+0x3e/0x1b0 net/core/sock.c:2239
sk_alloc+0x36/0x460 net/core/sock.c:2301
__vsock_create.constprop.0+0x38/0x2f0 net/vmw_vsock/af_vsock.c:893
virtio_transport_recv_listen net/vmw_vsock/virtio_transport_common.c:1557 [inline]
virtio_transport_recv_pkt+0x855/0xfc0 net/vmw_vsock/virtio_transport_common.c:1685
vsock_loopback_work+0x104/0x140 net/vmw_vsock/vsock_loopback.c:142
process_one_work+0x26c/0x5d0 kernel/workqueue.c:3275
process_scheduled_works kernel/workqueue.c:3358 [inline]
worker_thread+0x243/0x490 kernel/workqueue.c:3439
kthread+0x14e/0x1a0 kernel/kthread.c:436
ret_from_fork+0x23c/0x4b0 arch/x86/kernel/process.c:158
ret_from_fork_asm+0x1a/0x30 arch/x86/entry/entry_64.S:245

BUG: memory leak
unreferenced object 0xffff888114372e80 (size 32):
comm "kworker/1:3", pid 5832, jiffies 4294944454
hex dump (first 32 bytes):
f8 6e 0a 00 81 88 ff ff 00 00 00 00 00 00 00 00 .n..............
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
backtrace (crc e7f5c8b3):
kmemleak_alloc_recursive include/linux/kmemleak.h:44 [inline]
slab_post_alloc_hook mm/slub.c:4547 [inline]
slab_alloc_node mm/slub.c:4869 [inline]
__do_kmalloc_node mm/slub.c:5262 [inline]
__kmalloc_noprof+0x3bd/0x560 mm/slub.c:5275
kmalloc_noprof include/linux/slab.h:954 [inline]
kzalloc_noprof include/linux/slab.h:1188 [inline]
lsm_blob_alloc+0x4d/0x80 security/security.c:192
lsm_sock_alloc security/security.c:4375 [inline]
security_sk_alloc+0x2d/0x290 security/security.c:4391
sk_prot_alloc+0x8f/0x1b0 net/core/sock.c:2248
sk_alloc+0x36/0x460 net/core/sock.c:2301
__vsock_create.constprop.0+0x38/0x2f0 net/vmw_vsock/af_vsock.c:893
virtio_transport_recv_listen net/vmw_vsock/virtio_transport_common.c:1557 [inline]
virtio_transport_recv_pkt+0x855/0xfc0 net/vmw_vsock/virtio_transport_common.c:1685
vsock_loopback_work+0x104/0x140 net/vmw_vsock/vsock_loopback.c:142
process_one_work+0x26c/0x5d0 kernel/workqueue.c:3275
process_scheduled_works kernel/workqueue.c:3358 [inline]
worker_thread+0x243/0x490 kernel/workqueue.c:3439
kthread+0x14e/0x1a0 kernel/kthread.c:436
ret_from_fork+0x23c/0x4b0 arch/x86/kernel/process.c:158
ret_from_fork_asm+0x1a/0x30 arch/x86/entry/entry_64.S:245

BUG: memory leak
unreferenced object 0xffff8881054d0ea0 (size 96):
comm "kworker/1:3", pid 5832, jiffies 4294944454
hex dump (first 32 bytes):
00 e8 e1 29 81 88 ff ff 00 00 00 00 00 00 00 00 ...)............
00 00 00 00 00 00 00 00 00 00 04 00 00 00 00 00 ................
backtrace (crc 72501265):
kmemleak_alloc_recursive include/linux/kmemleak.h:44 [inline]
slab_post_alloc_hook mm/slub.c:4547 [inline]
slab_alloc_node mm/slub.c:4869 [inline]
__kmalloc_cache_noprof+0x377/0x480 mm/slub.c:5378
kmalloc_noprof include/linux/slab.h:950 [inline]
kzalloc_noprof include/linux/slab.h:1188 [inline]
virtio_transport_do_socket_init+0x2b/0xf0 net/vmw_vsock/virtio_transport_common.c:923
vsock_assign_transport+0x309/0x3a0 net/vmw_vsock/af_vsock.c:642
virtio_transport_recv_listen net/vmw_vsock/virtio_transport_common.c:1575 [inline]
virtio_transport_recv_pkt+0x8bc/0xfc0 net/vmw_vsock/virtio_transport_common.c:1685
vsock_loopback_work+0x104/0x140 net/vmw_vsock/vsock_loopback.c:142
process_one_work+0x26c/0x5d0 kernel/workqueue.c:3275
process_scheduled_works kernel/workqueue.c:3358 [inline]
worker_thread+0x243/0x490 kernel/workqueue.c:3439
kthread+0x14e/0x1a0 kernel/kthread.c:436
ret_from_fork+0x23c/0x4b0 arch/x86/kernel/process.c:158
ret_from_fork_asm+0x1a/0x30 arch/x86/entry/entry_64.S:245

connection error: failed to recv *flatrpc.ExecutorMessageRawT: EOF


---
This report is generated by a bot. It may contain errors.
See https://goo.gl/tpsmEJ for more information about syzbot.
syzbot engineers can be reached at syzk...@googlegroups.com.

syzbot will keep track of this issue. See:
https://goo.gl/tpsmEJ#status for how to communicate with syzbot.

If the report is already addressed, let syzbot know by replying with:
#syz fix: exact-commit-title

If you want syzbot to run the reproducer, reply with:
#syz test: git://repo/address.git branch-or-commit-hash
If you attach or paste a git patch, syzbot will apply it before testing.

If you want to overwrite report's subsystems, reply with:
#syz set subsystems: new-subsystem
(See the list of subsystem names on the web dashboard)

If the report is a duplicate of another one, reply with:
#syz dup: exact-subject-of-another-report

If you want to undo deduplication, reply with:
#syz undup

syzbot

unread,
Apr 24, 2026, 1:18:24 AMApr 24
to linux-...@vger.kernel.org, syzkall...@googlegroups.com
For archival purposes, forwarding an incoming command email to
linux-...@vger.kernel.org, syzkall...@googlegroups.com.

***

Subject: [PATCH] vsock/virtio: fix memory leak in virtio_transport_recv_listen()
Author: karti...@gmail.com

#syz test: git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master


Two bugs exist in virtio_transport_recv_listen():

1. On the transport assignment error path, sk_acceptq_added() is called
but sk_acceptq_removed() is never called when vsock_assign_transport()
fails or assigns a different transport than expected. This causes the
parent listener's accept backlog counter to be permanently inflated,
eventually causing sk_acceptq_is_full() to reject legitimate incoming
connections.

2. There is a race between __vsock_release() and vsock_enqueue_accept().
__vsock_release() sets sk->sk_shutdown to SHUTDOWN_MASK and flushes
the accept queue under the parent socket lock. However,
virtio_transport_recv_listen() checks sk_shutdown and subsequently
calls vsock_enqueue_accept() without holding the parent socket lock.
This means a child socket can be enqueued after __vsock_release() has
already flushed the queue, causing the child socket and its associated
resources (struct sock, LSM blob, virtio transport data) to leak
permanently. The existing comment in the code hints at this race but
the fix was never implemented.

Fix both issues: add sk_acceptq_removed() on the transport error path,
and re-check sk->sk_shutdown under the parent socket lock before calling
vsock_enqueue_accept() to close the race window. The child socket lock
is released before acquiring the parent socket lock to maintain correct
lock ordering (parent before child).

Reported-by: syzbot+1b2c9c...@syzkaller.appspotmail.com
Closes: https://syzkaller.appspot.com/bug?extid=1b2c9c4a0f8708082678
Signed-off-by: Deepanshu Kartikey <karti...@gmail.com>
---
net/vmw_vsock/virtio_transport_common.c | 13 +++++++++++--
1 file changed, 11 insertions(+), 2 deletions(-)

diff --git a/net/vmw_vsock/virtio_transport_common.c b/net/vmw_vsock/virtio_transport_common.c
index 416d533f493d..fad5fa4a4296 100644
--- a/net/vmw_vsock/virtio_transport_common.c
+++ b/net/vmw_vsock/virtio_transport_common.c
@@ -1578,6 +1578,7 @@ virtio_transport_recv_listen(struct sock *sk, struct sk_buff *skb,
*/
if (ret || vchild->transport != &t->transport) {
release_sock(child);
+ sk_acceptq_removed(sk);
virtio_transport_reset_no_sock(t, skb, sock_net(sk));
sock_put(child);
return ret;
@@ -1588,11 +1589,19 @@ virtio_transport_recv_listen(struct sock *sk, struct sk_buff *skb,
child->sk_write_space(child);

vsock_insert_connected(vchild);
+ release_sock(child);
+ lock_sock(sk);
+ if (sk->sk_shutdown == SHUTDOWN_MASK) {
+ release_sock(sk);
+ sk_acceptq_removed(sk);
+ virtio_transport_reset_no_sock(t, skb, sock_net(sk));
+ sock_put(child);
+ return -ESHUTDOWN;
+ }
vsock_enqueue_accept(sk, child);
+ release_sock(sk);
virtio_transport_send_response(vchild, skb);

- release_sock(child);
-
sk->sk_data_ready(sk);
return 0;
}
--
2.43.0

syzbot

unread,
Apr 24, 2026, 2:02:03 AMApr 24
to karti...@gmail.com, linux-...@vger.kernel.org, syzkall...@googlegroups.com
Hello,

syzbot has tested the proposed patch and the reproducer did not trigger any issue:

Reported-by: syzbot+1b2c9c...@syzkaller.appspotmail.com
Tested-by: syzbot+1b2c9c...@syzkaller.appspotmail.com

Tested on:

commit: dd6c438c Merge tag 'vfs-7.1-rc1.fixes' of git://git.ke..
git tree: upstream
console output: https://syzkaller.appspot.com/x/log.txt?x=16d7ecce580000
kernel config: https://syzkaller.appspot.com/x/.config?x=35695f2a82bc4c16
dashboard link: https://syzkaller.appspot.com/bug?extid=1b2c9c4a0f8708082678
compiler: gcc (Debian 14.2.0-19) 14.2.0, GNU ld (GNU Binutils for Debian) 2.44
patch: https://syzkaller.appspot.com/x/patch.diff?x=16387702580000

Note: testing is done by a robot and is best-effort only.

Stefano Garzarella

unread,
Apr 27, 2026, 12:19:06 PMApr 27
to syzbot, da...@davemloft.net, edum...@google.com, ho...@kernel.org, ku...@kernel.org, linux-...@vger.kernel.org, net...@vger.kernel.org, pab...@redhat.com, syzkall...@googlegroups.com, virtual...@lists.linux.dev
#syz test: https://github.com/stefano-garzarella/linux.git fix-syzbot-memleak-vsock-create

syzbot

unread,
Apr 27, 2026, 1:03:05 PMApr 27
to da...@davemloft.net, edum...@google.com, ho...@kernel.org, ku...@kernel.org, linux-...@vger.kernel.org, net...@vger.kernel.org, pab...@redhat.com, sgar...@redhat.com, syzkall...@googlegroups.com, virtual...@lists.linux.dev
Hello,

syzbot has tested the proposed patch but the reproducer is still triggering an issue:
memory leak in prepare_creds

2026/04/27 17:01:37 executed programs: 5
BUG: memory leak
unreferenced object 0xffff888103b7b900 (size 184):
comm "syz-executor", pid 6458, jiffies 4294946243
hex dump (first 32 bytes):
01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
backtrace (crc 5efbd4bc):
kmemleak_alloc_recursive include/linux/kmemleak.h:44 [inline]
slab_post_alloc_hook mm/slub.c:4574 [inline]
slab_alloc_node mm/slub.c:4898 [inline]
kmem_cache_alloc_noprof+0x36c/0x480 mm/slub.c:4905
prepare_creds+0x22/0x600 kernel/cred.c:185
copy_creds+0x44/0x290 kernel/cred.c:286
copy_process+0x920/0x2cf0 kernel/fork.c:2123
kernel_clone+0xde/0x700 kernel/fork.c:2723
__do_sys_clone+0x7f/0xb0 kernel/fork.c:2864
do_syscall_x64 arch/x86/entry/syscall_64.c:63 [inline]
do_syscall_64+0xee/0xf80 arch/x86/entry/syscall_64.c:94
entry_SYSCALL_64_after_hwframe+0x77/0x7f

BUG: memory leak
unreferenced object 0xffff88810ad103a0 (size 32):
comm "syz-executor", pid 6458, jiffies 4294946243
hex dump (first 32 bytes):
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
f8 56 0a 00 81 88 ff ff 00 00 00 00 00 00 00 00 .V..............
backtrace (crc 109407f3):
kmemleak_alloc_recursive include/linux/kmemleak.h:44 [inline]
slab_post_alloc_hook mm/slub.c:4574 [inline]
slab_alloc_node mm/slub.c:4898 [inline]
__do_kmalloc_node mm/slub.c:5294 [inline]
__kmalloc_noprof+0x3b7/0x550 mm/slub.c:5307
kmalloc_noprof include/linux/slab.h:954 [inline]
kzalloc_noprof include/linux/slab.h:1188 [inline]
lsm_blob_alloc+0x4d/0x80 security/security.c:218
lsm_cred_alloc security/security.c:235 [inline]
security_prepare_creds+0x2d/0x290 security/security.c:2866
prepare_creds+0x395/0x600 kernel/cred.c:215
copy_creds+0x44/0x290 kernel/cred.c:286
copy_process+0x920/0x2cf0 kernel/fork.c:2123
kernel_clone+0xde/0x700 kernel/fork.c:2723
__do_sys_clone+0x7f/0xb0 kernel/fork.c:2864
do_syscall_x64 arch/x86/entry/syscall_64.c:63 [inline]
do_syscall_64+0xee/0xf80 arch/x86/entry/syscall_64.c:94
entry_SYSCALL_64_after_hwframe+0x77/0x7f

BUG: memory leak
unreferenced object 0xffff888111516800 (size 1272):
comm "kworker/1:3", pid 5684, jiffies 4294946243
hex dump (first 32 bytes):
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
28 00 0b 40 00 00 00 00 00 00 00 00 00 00 00 00 (..@............
backtrace (crc 5e448183):
kmemleak_alloc_recursive include/linux/kmemleak.h:44 [inline]
slab_post_alloc_hook mm/slub.c:4574 [inline]
slab_alloc_node mm/slub.c:4898 [inline]
kmem_cache_alloc_noprof+0x36c/0x480 mm/slub.c:4905
sk_prot_alloc+0x3e/0x1b0 net/core/sock.c:2241
sk_alloc+0x36/0x460 net/core/sock.c:2303
__vsock_create.constprop.0+0x38/0x2f0 net/vmw_vsock/af_vsock.c:907
virtio_transport_recv_listen net/vmw_vsock/virtio_transport_common.c:1566 [inline]
virtio_transport_recv_pkt+0x88d/0xfb0 net/vmw_vsock/virtio_transport_common.c:1693
vsock_loopback_work+0x104/0x140 net/vmw_vsock/vsock_loopback.c:142
process_one_work+0x277/0x5b0 kernel/workqueue.c:3302
process_scheduled_works kernel/workqueue.c:3385 [inline]
worker_thread+0x255/0x4a0 kernel/workqueue.c:3466
kthread+0x14e/0x1a0 kernel/kthread.c:436
ret_from_fork+0x219/0x490 arch/x86/kernel/process.c:158
ret_from_fork_asm+0x1a/0x30 arch/x86/entry/entry_64.S:245

BUG: memory leak
unreferenced object 0xffff88812daab5e0 (size 32):
comm "kworker/1:3", pid 5684, jiffies 4294946243
hex dump (first 32 bytes):
f8 56 0a 00 81 88 ff ff 00 00 00 00 00 00 00 00 .V..............
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
backtrace (crc 79381f4a):
kmemleak_alloc_recursive include/linux/kmemleak.h:44 [inline]
slab_post_alloc_hook mm/slub.c:4574 [inline]
slab_alloc_node mm/slub.c:4898 [inline]
__do_kmalloc_node mm/slub.c:5294 [inline]
__kmalloc_noprof+0x3b7/0x550 mm/slub.c:5307
kmalloc_noprof include/linux/slab.h:954 [inline]
kzalloc_noprof include/linux/slab.h:1188 [inline]
lsm_blob_alloc+0x4d/0x80 security/security.c:218
lsm_sock_alloc security/security.c:4478 [inline]
security_sk_alloc+0x2d/0x290 security/security.c:4494
sk_prot_alloc+0x8f/0x1b0 net/core/sock.c:2250
sk_alloc+0x36/0x460 net/core/sock.c:2303
__vsock_create.constprop.0+0x38/0x2f0 net/vmw_vsock/af_vsock.c:907
virtio_transport_recv_listen net/vmw_vsock/virtio_transport_common.c:1566 [inline]
virtio_transport_recv_pkt+0x88d/0xfb0 net/vmw_vsock/virtio_transport_common.c:1693
vsock_loopback_work+0x104/0x140 net/vmw_vsock/vsock_loopback.c:142
process_one_work+0x277/0x5b0 kernel/workqueue.c:3302
process_scheduled_works kernel/workqueue.c:3385 [inline]
worker_thread+0x255/0x4a0 kernel/workqueue.c:3466
kthread+0x14e/0x1a0 kernel/kthread.c:436
ret_from_fork+0x219/0x490 arch/x86/kernel/process.c:158
ret_from_fork_asm+0x1a/0x30 arch/x86/entry/entry_64.S:245

BUG: memory leak
unreferenced object 0xffff88810b1a75a0 (size 96):
comm "kworker/1:3", pid 5684, jiffies 4294946243
hex dump (first 32 bytes):
00 68 51 11 81 88 ff ff 00 00 00 00 00 00 00 00 .hQ.............
00 00 00 00 00 00 00 00 00 00 04 00 00 00 00 00 ................
backtrace (crc 428f2031):
kmemleak_alloc_recursive include/linux/kmemleak.h:44 [inline]
slab_post_alloc_hook mm/slub.c:4574 [inline]
slab_alloc_node mm/slub.c:4898 [inline]
__kmalloc_cache_noprof+0x371/0x480 mm/slub.c:5410
kmalloc_noprof include/linux/slab.h:950 [inline]
kzalloc_noprof include/linux/slab.h:1188 [inline]
virtio_transport_do_socket_init+0x2b/0xf0 net/vmw_vsock/virtio_transport_common.c:925
vsock_assign_transport+0x3a3/0x460 net/vmw_vsock/af_vsock.c:656
virtio_transport_recv_listen net/vmw_vsock/virtio_transport_common.c:1582 [inline]
virtio_transport_recv_pkt+0x8e5/0xfb0 net/vmw_vsock/virtio_transport_common.c:1693
vsock_loopback_work+0x104/0x140 net/vmw_vsock/vsock_loopback.c:142
process_one_work+0x277/0x5b0 kernel/workqueue.c:3302
process_scheduled_works kernel/workqueue.c:3385 [inline]
worker_thread+0x255/0x4a0 kernel/workqueue.c:3466
kthread+0x14e/0x1a0 kernel/kthread.c:436
ret_from_fork+0x219/0x490 arch/x86/kernel/process.c:158
ret_from_fork_asm+0x1a/0x30 arch/x86/entry/entry_64.S:245

BUG: memory leak
unreferenced object 0xffff888111516300 (size 1272):
comm "kworker/1:3", pid 5684, jiffies 4294946244
hex dump (first 32 bytes):
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
28 00 0b 40 00 00 00 00 00 00 00 00 00 00 00 00 (..@............
backtrace (crc e1cd45d1):
kmemleak_alloc_recursive include/linux/kmemleak.h:44 [inline]
slab_post_alloc_hook mm/slub.c:4574 [inline]
slab_alloc_node mm/slub.c:4898 [inline]
kmem_cache_alloc_noprof+0x36c/0x480 mm/slub.c:4905
sk_prot_alloc+0x3e/0x1b0 net/core/sock.c:2241
sk_alloc+0x36/0x460 net/core/sock.c:2303
__vsock_create.constprop.0+0x38/0x2f0 net/vmw_vsock/af_vsock.c:907
virtio_transport_recv_listen net/vmw_vsock/virtio_transport_common.c:1566 [inline]
virtio_transport_recv_pkt+0x88d/0xfb0 net/vmw_vsock/virtio_transport_common.c:1693
vsock_loopback_work+0x104/0x140 net/vmw_vsock/vsock_loopback.c:142
process_one_work+0x277/0x5b0 kernel/workqueue.c:3302
process_scheduled_works kernel/workqueue.c:3385 [inline]
worker_thread+0x255/0x4a0 kernel/workqueue.c:3466
kthread+0x14e/0x1a0 kernel/kthread.c:436
ret_from_fork+0x219/0x490 arch/x86/kernel/process.c:158
ret_from_fork_asm+0x1a/0x30 arch/x86/entry/entry_64.S:245

connection error: failed to recv *flatrpc.ExecutorMessageRawT: EOF


Tested on:

commit: 39ff9a4a vsock/virtio: fix socket leak on close_timeou..
git tree: https://github.com/stefano-garzarella/linux.git fix-syzbot-memleak-vsock-create
console output: https://syzkaller.appspot.com/x/log.txt?x=1742b896580000
kernel config: https://syzkaller.appspot.com/x/.config?x=dfcc8f993a958a78
dashboard link: https://syzkaller.appspot.com/bug?extid=1b2c9c4a0f8708082678
compiler: gcc (Debian 14.2.0-19) 14.2.0, GNU ld (GNU Binutils for Debian) 2.44

Note: no patches were applied.

syzbot

unread,
12:53 AM (8 hours ago) 12:53 AM
to linux-...@vger.kernel.org, syzkall...@googlegroups.com
For archival purposes, forwarding an incoming command email to
linux-...@vger.kernel.org, syzkall...@googlegroups.com.

***

Subject: Re: [syzbot] memory leak in __vsock_create (2)
Author: phin...@gmail.com

#syz test:
git://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git master

syzbot

unread,
4:58 AM (4 hours ago) 4:58 AM
to linux-...@vger.kernel.org, syzkall...@googlegroups.com
For archival purposes, forwarding an incoming command email to
linux-...@vger.kernel.org, syzkall...@googlegroups.com.

***

Subject: Re: [syzbot] [net?] [virt?] memory leak in __vsock_create (2)
On Sun, Jul 19, 2026 at 3:47 PM syzbot
<syzbot+1b2c9c...@syzkaller.appspotmail.com> wrote:
>
> Hello,
>
> syzbot has tested the proposed patch but the reproducer is still triggering an issue:
> memory leak in __vsock_create
>
> 2026/07/19 07:45:48 executed programs: 5
> BUG: memory leak
> unreferenced object 0xffff888113812d00 (size 1272):
> comm "kworker/1:2", pid 3105, jiffies 4294947499
> hex dump (first 32 bytes):
> 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
> 28 00 0b 40 00 00 00 00 00 00 00 00 00 00 00 00 (..@............
> backtrace (crc 3df84e77):
> kmemleak_alloc_recursive include/linux/kmemleak.h:44 [inline]
> slab_post_alloc_hook mm/slub.c:4593 [inline]
> slab_alloc_node mm/slub.c:4893 [inline]
> kmem_cache_alloc_noprof+0x388/0x410 mm/slub.c:4907
> sk_prot_alloc+0x3e/0x1b0 net/core/sock.c:2246
> sk_alloc+0x36/0x3d0 net/core/sock.c:2308
> __vsock_create.constprop.0+0x38/0x2f0 net/vmw_vsock/af_vsock.c:919
> virtio_transport_recv_listen net/vmw_vsock/virtio_transport_common.c:1555 [inline]
> virtio_transport_recv_pkt+0x904/0xf80 net/vmw_vsock/virtio_transport_common.c:1681
> vsock_loopback_work+0x104/0x140 net/vmw_vsock/vsock_loopback.c:142
> process_one_work+0x2b8/0x600 kernel/workqueue.c:3375
> process_scheduled_works kernel/workqueue.c:3458 [inline]
> worker_thread+0x255/0x4a0 kernel/workqueue.c:3539
> kthread+0x14e/0x1a0 kernel/kthread.c:436
> ret_from_fork+0x219/0x490 arch/x86/kernel/process.c:158
> ret_from_fork_asm+0x1a/0x30 arch/x86/entry/entry_64.S:245
>
> BUG: memory leak
> unreferenced object 0xffff888117aa8980 (size 32):
> comm "kworker/1:2", pid 3105, jiffies 4294947499
> hex dump (first 32 bytes):
> f8 52 0a 00 81 88 ff ff 00 00 00 00 00 00 00 00 .R..............
> 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
> backtrace (crc 42a7bc0e):
> kmemleak_alloc_recursive include/linux/kmemleak.h:44 [inline]
> slab_post_alloc_hook mm/slub.c:4593 [inline]
> slab_alloc_node mm/slub.c:4893 [inline]
> __do_kmalloc_node mm/slub.c:5310 [inline]
> __kmalloc_noprof+0x3f8/0x540 mm/slub.c:5336
> _kmalloc_noprof include/linux/slab.h:988 [inline]
> _kzalloc_noprof include/linux/slab.h:1305 [inline]
> lsm_blob_alloc+0x4d/0x80 security/security.c:218
> lsm_sock_alloc security/security.c:4477 [inline]
> security_sk_alloc+0x2d/0x290 security/security.c:4493
> sk_prot_alloc+0x8f/0x1b0 net/core/sock.c:2255
> sk_alloc+0x36/0x3d0 net/core/sock.c:2308
> __vsock_create.constprop.0+0x38/0x2f0 net/vmw_vsock/af_vsock.c:919
> virtio_transport_recv_listen net/vmw_vsock/virtio_transport_common.c:1555 [inline]
> virtio_transport_recv_pkt+0x904/0xf80 net/vmw_vsock/virtio_transport_common.c:1681
> vsock_loopback_work+0x104/0x140 net/vmw_vsock/vsock_loopback.c:142
> process_one_work+0x2b8/0x600 kernel/workqueue.c:3375
> process_scheduled_works kernel/workqueue.c:3458 [inline]
> worker_thread+0x255/0x4a0 kernel/workqueue.c:3539
> kthread+0x14e/0x1a0 kernel/kthread.c:436
> ret_from_fork+0x219/0x490 arch/x86/kernel/process.c:158
> ret_from_fork_asm+0x1a/0x30 arch/x86/entry/entry_64.S:245
>
> BUG: memory leak
> unreferenced object 0xffff8881122fe5a0 (size 96):
> comm "kworker/1:2", pid 3105, jiffies 4294947499
> hex dump (first 32 bytes):
> 00 2d 81 13 81 88 ff ff 00 00 00 00 00 00 00 00 .-..............
> 00 00 00 00 00 00 00 00 00 00 04 00 00 00 00 00 ................
> backtrace (crc 159c7144):
> kmemleak_alloc_recursive include/linux/kmemleak.h:44 [inline]
> slab_post_alloc_hook mm/slub.c:4593 [inline]
> slab_alloc_node mm/slub.c:4893 [inline]
> __kmalloc_cache_noprof+0x38c/0x420 mm/slub.c:5456
> _kmalloc_noprof include/linux/slab.h:984 [inline]
> _kzalloc_noprof include/linux/slab.h:1305 [inline]
> virtio_transport_do_socket_init+0x2b/0xf0 net/vmw_vsock/virtio_transport_common.c:907
> vsock_assign_transport+0x3a3/0x460 net/vmw_vsock/af_vsock.c:670
> virtio_transport_recv_listen net/vmw_vsock/virtio_transport_common.c:1571 [inline]
> virtio_transport_recv_pkt+0x95c/0xf80 net/vmw_vsock/virtio_transport_common.c:1681
> vsock_loopback_work+0x104/0x140 net/vmw_vsock/vsock_loopback.c:142
> process_one_work+0x2b8/0x600 kernel/workqueue.c:3375
> process_scheduled_works kernel/workqueue.c:3458 [inline]
> worker_thread+0x255/0x4a0 kernel/workqueue.c:3539
> kthread+0x14e/0x1a0 kernel/kthread.c:436
> ret_from_fork+0x219/0x490 arch/x86/kernel/process.c:158
> ret_from_fork_asm+0x1a/0x30 arch/x86/entry/entry_64.S:245
>
> BUG: memory leak
> unreferenced object 0xffff888113812800 (size 1272):
> comm "kworker/1:2", pid 3105, jiffies 4294947499
> hex dump (first 32 bytes):
> 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
> 28 00 0b 40 00 00 00 00 00 00 00 00 00 00 00 00 (..@............
> backtrace (crc 4993b404):
> kmemleak_alloc_recursive include/linux/kmemleak.h:44 [inline]
> slab_post_alloc_hook mm/slub.c:4593 [inline]
> slab_alloc_node mm/slub.c:4893 [inline]
> kmem_cache_alloc_noprof+0x388/0x410 mm/slub.c:4907
> sk_prot_alloc+0x3e/0x1b0 net/core/sock.c:2246
> sk_alloc+0x36/0x3d0 net/core/sock.c:2308
> __vsock_create.constprop.0+0x38/0x2f0 net/vmw_vsock/af_vsock.c:919
> virtio_transport_recv_listen net/vmw_vsock/virtio_transport_common.c:1555 [inline]
> virtio_transport_recv_pkt+0x904/0xf80 net/vmw_vsock/virtio_transport_common.c:1681
> vsock_loopback_work+0x104/0x140 net/vmw_vsock/vsock_loopback.c:142
> process_one_work+0x2b8/0x600 kernel/workqueue.c:3375
> process_scheduled_works kernel/workqueue.c:3458 [inline]
> worker_thread+0x255/0x4a0 kernel/workqueue.c:3539
> kthread+0x14e/0x1a0 kernel/kthread.c:436
> ret_from_fork+0x219/0x490 arch/x86/kernel/process.c:158
> ret_from_fork_asm+0x1a/0x30 arch/x86/entry/entry_64.S:245
>
> BUG: memory leak
> unreferenced object 0xffff888117aa8320 (size 32):
> comm "kworker/1:2", pid 3105, jiffies 4294947499
> hex dump (first 32 bytes):
> f8 52 0a 00 81 88 ff ff 00 00 00 00 00 00 00 00 .R..............
> 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
> backtrace (crc 42a7bc0e):
> kmemleak_alloc_recursive include/linux/kmemleak.h:44 [inline]
> slab_post_alloc_hook mm/slub.c:4593 [inline]
> slab_alloc_node mm/slub.c:4893 [inline]
> __do_kmalloc_node mm/slub.c:5310 [inline]
> __kmalloc_noprof+0x3f8/0x540 mm/slub.c:5336
> _kmalloc_noprof include/linux/slab.h:988 [inline]
> _kzalloc_noprof include/linux/slab.h:1305 [inline]
> lsm_blob_alloc+0x4d/0x80 security/security.c:218
> lsm_sock_alloc security/security.c:4477 [inline]
> security_sk_alloc+0x2d/0x290 security/security.c:4493
> sk_prot_alloc+0x8f/0x1b0 net/core/sock.c:2255
> sk_alloc+0x36/0x3d0 net/core/sock.c:2308
> __vsock_create.constprop.0+0x38/0x2f0 net/vmw_vsock/af_vsock.c:919
> virtio_transport_recv_listen net/vmw_vsock/virtio_transport_common.c:1555 [inline]
> virtio_transport_recv_pkt+0x904/0xf80 net/vmw_vsock/virtio_transport_common.c:1681
> vsock_loopback_work+0x104/0x140 net/vmw_vsock/vsock_loopback.c:142
> process_one_work+0x2b8/0x600 kernel/workqueue.c:3375
> process_scheduled_works kernel/workqueue.c:3458 [inline]
> worker_thread+0x255/0x4a0 kernel/workqueue.c:3539
> kthread+0x14e/0x1a0 kernel/kthread.c:436
> ret_from_fork+0x219/0x490 arch/x86/kernel/process.c:158
> ret_from_fork_asm+0x1a/0x30 arch/x86/entry/entry_64.S:245
>
> BUG: memory leak
> unreferenced object 0xffff88811756a000 (size 96):
> comm "kworker/1:2", pid 3105, jiffies 4294947499
> hex dump (first 32 bytes):
> 00 28 81 13 81 88 ff ff 00 00 00 00 00 00 00 00 .(..............
> 00 00 00 00 00 00 00 00 00 00 04 00 00 00 00 00 ................
> backtrace (crc 87703aa0):
> kmemleak_alloc_recursive include/linux/kmemleak.h:44 [inline]
> slab_post_alloc_hook mm/slub.c:4593 [inline]
> slab_alloc_node mm/slub.c:4893 [inline]
> __kmalloc_cache_noprof+0x38c/0x420 mm/slub.c:5456
> _kmalloc_noprof include/linux/slab.h:984 [inline]
> _kzalloc_noprof include/linux/slab.h:1305 [inline]
> virtio_transport_do_socket_init+0x2b/0xf0 net/vmw_vsock/virtio_transport_common.c:907
> vsock_assign_transport+0x3a3/0x460 net/vmw_vsock/af_vsock.c:670
> virtio_transport_recv_listen net/vmw_vsock/virtio_transport_common.c:1571 [inline]
> virtio_transport_recv_pkt+0x95c/0xf80 net/vmw_vsock/virtio_transport_common.c:1681
> vsock_loopback_work+0x104/0x140 net/vmw_vsock/vsock_loopback.c:142
> process_one_work+0x2b8/0x600 kernel/workqueue.c:3375
> process_scheduled_works kernel/workqueue.c:3458 [inline]
> worker_thread+0x255/0x4a0 kernel/workqueue.c:3539
> kthread+0x14e/0x1a0 kernel/kthread.c:436
> ret_from_fork+0x219/0x490 arch/x86/kernel/process.c:158
> ret_from_fork_asm+0x1a/0x30 arch/x86/entry/entry_64.S:245
>
> connection error: failed to recv *flatrpc.ExecutorMessageRawT: EOF
>
>
> Tested on:
>
> commit: 0718283a Add linux-next specific files for 20260717
> git tree: linux-next
> console output: https://syzkaller.appspot.com/x/log.txt?x=13c222b9580000
> kernel config: https://syzkaller.appspot.com/x/.config?x=f74727dd1edec112
> dashboard link: https://syzkaller.appspot.com/bug?extid=1b2c9c4a0f8708082678
> compiler: gcc (Debian 14.2.0-19) 14.2.0, GNU ld (GNU Binutils for Debian) 2.44
>
Reply all
Reply to author
Forward
0 new messages