Netdev List
 help / color / mirror / Atom feed
* [syzbot] [net?] [usb?] memory leak in ndisc_send_rs (4)
@ 2026-11-13 17:51 syzbot
  0 siblings, 0 replies; only message in thread
From: syzbot @ 2026-11-13 17:51 UTC (permalink / raw)
  To: davem, dsahern, edumazet, horms, idosch, kuba, linux-kernel,
	linux-usb, netdev, pabeni, syzkaller-bugs

Hello,

syzbot found the following issue on:

HEAD commit:    9d66f26fefac Merge tag 'vfs-7.4-rc3.fixes.2' of git://git...
git tree:       upstream
console output: https://syzkaller.appspot.com/x/log.txt?x=136da9ea580000
kernel config:  https://syzkaller.appspot.com/x/.config?x=4361b1bb937ae1c4
dashboard link: https://syzkaller.appspot.com/bug?extid=bf62ca9997f43d2fa521
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=12e9ba09580000

Downloadable assets:
disk image: https://storage.googleapis.com/syzbot-assets/292d4fa72c6e/disk-9d66f26f.raw.xz
vmlinux: https://storage.googleapis.com/syzbot-assets/78e602f24eea/vmlinux-9d66f26f.xz
kernel image: https://storage.googleapis.com/syzbot-assets/802a7b846686/bzImage-9d66f26f.xz

AI-generated root cause summary:
In drivers/net/usb/hso.c, hso_net_start_xmit() takes ownership of an outgoing
packet by stashing it in odev->skb_tx_buf when hso_get_activity() returns
-EAGAIN (e.g. when the USB device is suspended, disconnected, or not
configured). However, neither hso_net_close() nor hso_free_net_device() frees
odev->skb_tx_buf prior to unregistering and freeing the net_device. When a
packet (such as an IPv6 Router Solicitation generated during interface
configuration) is queued during device disconnect or suspend, the sk_buff and
its allocated head buffer are permanently leaked.

full analysis:  https://syzkaller.appspot.com/x/ai_root_cause?x=bf62ca9997f43d2fa521

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

BUG: memory leak
unreferenced object 0xffff888100e9f200 (size 240):
  comm "kworker/u8:2", pid 5708, jiffies 4294993435
  hex dump (first 32 bytes):
    00 00 00 00 00 00 00 00 00 f2 e9 00 81 88 ff ff  ................
    00 20 bd 23 81 88 ff ff 80 31 48 02 81 88 ff ff  . .#.....1H.....
  backtrace (crc 28f53d77):
    kmemleak_alloc_recursive include/linux/kmemleak.h:44 [inline]
    slab_post_alloc_hook mm/slub.c:4733 [inline]
    slab_alloc_node mm/slub.c:5033 [inline]
    kmem_cache_alloc_node_noprof+0x368/0x400 mm/slub.c:5105
    __alloc_skb+0xdc/0x4e0 net/core/skbuff.c:705
    alloc_skb include/linux/skbuff.h:1390 [inline]
    ndisc_alloc_skb+0x46/0xf0 net/ipv6/ndisc.c:421
    ndisc_send_rs+0x49/0x2f0 net/ipv6/ndisc.c:708
    addrconf_dad_completed+0x1f9/0x6c0 net/ipv6/addrconf.c:4422
    addrconf_dad_begin net/ipv6/addrconf.c:4184 [inline]
    addrconf_dad_work+0x5c8/0x910 net/ipv6/addrconf.c:4289
    process_one_work+0x2b7/0x5c0 kernel/workqueue.c:3495
    process_scheduled_works kernel/workqueue.c:3578 [inline]
    worker_thread+0x255/0x4a0 kernel/workqueue.c:3659
    kthread+0x150/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 0xffff888106538b00 (size 704):
  comm "kworker/u8:2", pid 5708, jiffies 4294993435
  hex dump (first 32 bytes):
    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
    60 00 00 00 00 08 3a ff fe 80 00 00 00 00 00 00  `.....:.........
  backtrace (crc 261f6968):
    kmemleak_alloc_recursive include/linux/kmemleak.h:44 [inline]
    slab_post_alloc_hook mm/slub.c:4733 [inline]
    slab_alloc_node mm/slub.c:5033 [inline]
    kmem_cache_alloc_node_noprof+0x368/0x400 mm/slub.c:5105
    kmalloc_reserve+0xd2/0x1b0 net/core/skbuff.c:616
    __alloc_skb+0x15d/0x4e0 net/core/skbuff.c:716
    alloc_skb include/linux/skbuff.h:1390 [inline]
    ndisc_alloc_skb+0x46/0xf0 net/ipv6/ndisc.c:421
    ndisc_send_rs+0x49/0x2f0 net/ipv6/ndisc.c:708
    addrconf_dad_completed+0x1f9/0x6c0 net/ipv6/addrconf.c:4422
    addrconf_dad_begin net/ipv6/addrconf.c:4184 [inline]
    addrconf_dad_work+0x5c8/0x910 net/ipv6/addrconf.c:4289
    process_one_work+0x2b7/0x5c0 kernel/workqueue.c:3495
    process_scheduled_works kernel/workqueue.c:3578 [inline]
    worker_thread+0x255/0x4a0 kernel/workqueue.c:3659
    kthread+0x150/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


---
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 syzkaller@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 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

^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2026-11-13 17:51 UTC | newest]

Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-11-13 17:51 [syzbot] [net?] [usb?] memory leak in ndisc_send_rs (4) syzbot

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox