memory leak in usb_copy_descriptors

Status: upstream: reported C repro on 2026/08/07 10:48
Subsystems: usb
Labels: prio:low
[Documentation on labels]
Reported-by: syzbot+28cf08dec5895bd562e6@syzkaller.appspotmail.com
First crash: 5d05h, last: 5d05h
✨ AI Jobs (1)
ID Workflow Result Correct Bug Created Started Finished Revision
bf684884 assessment-security DenialOfService: ✅ Exploitable: ❌ FilesystemTrigger: ❌ NetworkTrigger: ❌ PeripheralTrigger: ❌ RemoteTrigger: ❌ Unprivileged: ❌ UserNamespace: ❌ VMGuestTrigger: ❌ VMHostTrigger: ❌ memory leak in usb_copy_descriptors 2026/08/03 10:38 2026/08/03 10:38 2026/08/03 11:08 e611ffe1
Discussions (1)
Title Replies (including bot) Last reply
[syzbot] [usb?] memory leak in usb_copy_descriptors 0 (1) 2026/08/07 10:48

Sample crash report:
2026/08/03 10:38:22 executed programs: 5
BUG: memory leak
unreferenced object 0xffff8881154d0900 (size 64):
  comm "syz.0.18", pid 5914, jiffies 4294944269
  hex dump (first 32 bytes):
    20 09 4d 15 81 88 ff ff 29 09 4d 15 81 88 ff ff   .M.....).M.....
    30 09 4d 15 81 88 ff ff 00 00 00 00 00 00 00 00  0.M.............
  backtrace (crc f8bef12):
    kmemleak_alloc_recursive include/linux/kmemleak.h:44 [inline]
    slab_post_alloc_hook mm/slub.c:4597 [inline]
    slab_alloc_node mm/slub.c:4917 [inline]
    __do_kmalloc_node mm/slub.c:5333 [inline]
    __kmalloc_noprof+0x3bf/0x550 mm/slub.c:5359
    _kmalloc_noprof include/linux/slab.h:992 [inline]
    usb_copy_descriptors+0x6c/0x160 drivers/usb/gadget/config.c:82
    usb_assign_descriptors+0x48/0x180 drivers/usb/gadget/config.c:121
    loopback_bind+0xff/0x120 drivers/usb/gadget/function/f_loopback.c:209
    usb_add_function+0xca/0x270 drivers/usb/gadget/composite.c:333
    configfs_composite_bind+0x667/0x9b0 drivers/usb/gadget/configfs.c:1802
    gadget_bind_driver+0xed/0x390 drivers/usb/gadget/udc/core.c:1662
    call_driver_probe drivers/base/dd.c:628 [inline]
    really_probe+0x12f/0x3a0 drivers/base/dd.c:706
    __driver_probe_device+0xe9/0x1a0 drivers/base/dd.c:868
    driver_probe_device+0x28/0xf0 drivers/base/dd.c:898
    __driver_attach drivers/base/dd.c:1292 [inline]
    __driver_attach+0x10a/0x200 drivers/base/dd.c:1232
    bus_for_each_dev+0xb8/0x120 drivers/base/bus.c:383
    bus_add_driver+0x122/0x280 drivers/base/bus.c:763
    driver_register+0xb1/0x140 drivers/base/driver.c:174
    usb_gadget_register_driver_owner+0x69/0xe0 drivers/usb/gadget/udc/core.c:1752
    gadget_dev_desc_UDC_store+0x153/0x1e0 drivers/usb/gadget/configfs.c:300

BUG: memory leak
unreferenced object 0xffff8881154d0580 (size 64):
  comm "syz.0.18", pid 5914, jiffies 4294944269
  hex dump (first 32 bytes):
    a0 05 4d 15 81 88 ff ff a9 05 4d 15 81 88 ff ff  ..M.......M.....
    b0 05 4d 15 81 88 ff ff 00 00 00 00 00 00 00 00  ..M.............
  backtrace (crc cfada151):
    kmemleak_alloc_recursive include/linux/kmemleak.h:44 [inline]
    slab_post_alloc_hook mm/slub.c:4597 [inline]
    slab_alloc_node mm/slub.c:4917 [inline]
    __do_kmalloc_node mm/slub.c:5333 [inline]
    __kmalloc_noprof+0x3bf/0x550 mm/slub.c:5359
    _kmalloc_noprof include/linux/slab.h:992 [inline]
    usb_copy_descriptors+0x6c/0x160 drivers/usb/gadget/config.c:82
    usb_assign_descriptors+0x6c/0x180 drivers/usb/gadget/config.c:126
    loopback_bind+0xff/0x120 drivers/usb/gadget/function/f_loopback.c:209
    usb_add_function+0xca/0x270 drivers/usb/gadget/composite.c:333
    configfs_composite_bind+0x667/0x9b0 drivers/usb/gadget/configfs.c:1802
    gadget_bind_driver+0xed/0x390 drivers/usb/gadget/udc/core.c:1662
    call_driver_probe drivers/base/dd.c:628 [inline]
    really_probe+0x12f/0x3a0 drivers/base/dd.c:706
    __driver_probe_device+0xe9/0x1a0 drivers/base/dd.c:868
    driver_probe_device+0x28/0xf0 drivers/base/dd.c:898
    __driver_attach drivers/base/dd.c:1292 [inline]
    __driver_attach+0x10a/0x200 drivers/base/dd.c:1232
    bus_for_each_dev+0xb8/0x120 drivers/base/bus.c:383
    bus_add_driver+0x122/0x280 drivers/base/bus.c:763
    driver_register+0xb1/0x140 drivers/base/driver.c:174
    usb_gadget_register_driver_owner+0x69/0xe0 drivers/usb/gadget/udc/core.c:1752
    gadget_dev_desc_UDC_store+0x153/0x1e0 drivers/usb/gadget/configfs.c:300

BUG: memory leak
unreferenced object 0xffff888115497f60 (size 96):
  comm "syz.0.18", pid 5914, jiffies 4294944269
  hex dump (first 32 bytes):
    90 7f 49 15 81 88 ff ff 99 7f 49 15 81 88 ff ff  ..I.......I.....
    a0 7f 49 15 81 88 ff ff a6 7f 49 15 81 88 ff ff  ..I.......I.....
  backtrace (crc c70322d9):
    kmemleak_alloc_recursive include/linux/kmemleak.h:44 [inline]
    slab_post_alloc_hook mm/slub.c:4597 [inline]
    slab_alloc_node mm/slub.c:4917 [inline]
    __do_kmalloc_node mm/slub.c:5333 [inline]
    __kmalloc_noprof+0x3bf/0x550 mm/slub.c:5359
    _kmalloc_noprof include/linux/slab.h:992 [inline]
    usb_copy_descriptors+0x6c/0x160 drivers/usb/gadget/config.c:82
    usb_assign_descriptors+0xf9/0x180 drivers/usb/gadget/config.c:136
    loopback_bind+0xff/0x120 drivers/usb/gadget/function/f_loopback.c:209
    usb_add_function+0xca/0x270 drivers/usb/gadget/composite.c:333
    configfs_composite_bind+0x667/0x9b0 drivers/usb/gadget/configfs.c:1802
    gadget_bind_driver+0xed/0x390 drivers/usb/gadget/udc/core.c:1662
    call_driver_probe drivers/base/dd.c:628 [inline]
    really_probe+0x12f/0x3a0 drivers/base/dd.c:706
    __driver_probe_device+0xe9/0x1a0 drivers/base/dd.c:868
    driver_probe_device+0x28/0xf0 drivers/base/dd.c:898
    __driver_attach drivers/base/dd.c:1292 [inline]
    __driver_attach+0x10a/0x200 drivers/base/dd.c:1232
    bus_for_each_dev+0xb8/0x120 drivers/base/bus.c:383
    bus_add_driver+0x122/0x280 drivers/base/bus.c:763
    driver_register+0xb1/0x140 drivers/base/driver.c:174
    usb_gadget_register_driver_owner+0x69/0xe0 drivers/usb/gadget/udc/core.c:1752
    gadget_dev_desc_UDC_store+0x153/0x1e0 drivers/usb/gadget/configfs.c:300

BUG: memory leak
unreferenced object 0xffff888110edd300 (size 64):
  comm "syz.0.19", pid 5917, jiffies 4294944271
  hex dump (first 32 bytes):
    20 d3 ed 10 81 88 ff ff 29 d3 ed 10 81 88 ff ff   .......).......
    30 d3 ed 10 81 88 ff ff 00 00 00 00 00 00 00 00  0...............
  backtrace (crc 316a7640):
    kmemleak_alloc_recursive include/linux/kmemleak.h:44 [inline]
    slab_post_alloc_hook mm/slub.c:4597 [inline]
    slab_alloc_node mm/slub.c:4917 [inline]
    __do_kmalloc_node mm/slub.c:5333 [inline]
    __kmalloc_noprof+0x3bf/0x550 mm/slub.c:5359
    _kmalloc_noprof include/linux/slab.h:992 [inline]
    usb_copy_descriptors+0x6c/0x160 drivers/usb/gadget/config.c:82
    usb_assign_descriptors+0x48/0x180 drivers/usb/gadget/config.c:121
    loopback_bind+0xff/0x120 drivers/usb/gadget/function/f_loopback.c:209
    usb_add_function+0xca/0x270 drivers/usb/gadget/composite.c:333
    configfs_composite_bind+0x667/0x9b0 drivers/usb/gadget/configfs.c:1802
    gadget_bind_driver+0xed/0x390 drivers/usb/gadget/udc/core.c:1662
    call_driver_probe drivers/base/dd.c:628 [inline]
    really_probe+0x12f/0x3a0 drivers/base/dd.c:706
    __driver_probe_device+0xe9/0x1a0 drivers/base/dd.c:868
    driver_probe_device+0x28/0xf0 drivers/base/dd.c:898
    __driver_attach drivers/base/dd.c:1292 [inline]
    __driver_attach+0x10a/0x200 drivers/base/dd.c:1232
    bus_for_each_dev+0xb8/0x120 drivers/base/bus.c:383
    bus_add_driver+0x122/0x280 drivers/base/bus.c:763
    driver_register+0xb1/0x140 drivers/base/driver.c:174
    usb_gadget_register_driver_owner+0x69/0xe0 drivers/usb/gadget/udc/core.c:1752
    gadget_dev_desc_UDC_store+0x153/0x1e0 drivers/usb/gadget/configfs.c:300

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

Crashes (1):
Time Kernel Commit Syzkaller Config Log Report Syz repro C repro VM info Assets (help?) Manager Title
2026/08/03 10:38 upstream bd1dde877520 e611ffe1 .config console log report syz / log C [disk image] [vmlinux] [kernel image] ci-upstream-gce-leak memory leak in usb_copy_descriptors
* Struck through repros no longer work on HEAD.