syzbot


KASAN: use-after-free Read in load_firmware_cb (2)

Status: upstream: reported C repro on 2025/10/18 16:24
Bug presence: origin:upstream
[Documentation on labels]
Reported-by: syzbot+f7a358f1f862868c8937@syzkaller.appspotmail.com
First crash: 99d, last: 7d11h
Fix bisection: failed (error log)
  
Bug presence (2)
Date Name Commit Repro Result
2025/10/20 upstream (ToT) d9043c79ba68 C [report] KASAN: slab-use-after-free Read in load_firmware_cb
2026/01/18 upstream (ToT) e84d960149e7 C Failed due to an error; will retry later
Similar bugs (4)
Kernel Title Rank 🛈 Repro Cause bisect Fix bisect Count Last Reported Patched Status
upstream KASAN: use-after-free Read in load_firmware_cb usb media 19 C 12 1244d 2160d 0/29 auto-obsoleted due to no activity on 2023/11/09 13:12
linux-6.1 KASAN: use-after-free Read in load_firmware_cb 19 2 542d 543d 0/3 auto-obsoleted due to no activity on 2024/11/10 09:01
upstream KASAN: slab-use-after-free Read in load_firmware_cb (2) usb media 19 C 5 34d 302d 0/29 upstream: reported C repro on 2025/03/30 07:21
upstream KASAN: slab-use-after-free Read in load_firmware_cb media 19 4 488d 542d 0/29 auto-obsoleted due to no activity on 2024/12/23 23:36

Sample crash report:
==================================================================
BUG: KASAN: use-after-free in load_firmware_cb+0xc0/0x1524 drivers/media/tuners/xc2028.c:1372
Read of size 8 at addr ffff0000c3334318 by task kworker/1:13/4431

CPU: 1 PID: 4431 Comm: kworker/1:13 Not tainted syzkaller #0
Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 10/03/2025
Workqueue: events request_firmware_work_func

Call trace:
 dump_backtrace+0x1c0/0x1ec arch/arm64/kernel/stacktrace.c:158
 show_stack+0x2c/0x3c arch/arm64/kernel/stacktrace.c:165
 __dump_stack+0x30/0x40 lib/dump_stack.c:88
 dump_stack_lvl+0xf4/0x15c lib/dump_stack.c:106
 print_address_description+0x88/0x218 mm/kasan/report.c:316
 print_report+0x50/0x68 mm/kasan/report.c:420
 kasan_report+0xa8/0xfc mm/kasan/report.c:524
 __asan_report_load8_noabort+0x2c/0x38 mm/kasan/report_generic.c:351
 load_firmware_cb+0xc0/0x1524 drivers/media/tuners/xc2028.c:1372
 request_firmware_work_func+0xe8/0x19c drivers/base/firmware_loader/main.c:1137
 process_one_work+0x7f8/0x13a4 kernel/workqueue.c:2292
 worker_thread+0x8c4/0xfec kernel/workqueue.c:2439
 kthread+0x250/0x2d8 kernel/kthread.c:376
 ret_from_fork+0x10/0x20 arch/arm64/kernel/entry.S:850

Allocated by task 4431:
 kasan_save_stack mm/kasan/common.c:46 [inline]
 kasan_set_track+0x4c/0x80 mm/kasan/common.c:53
 kasan_save_alloc_info+0x24/0x30 mm/kasan/generic.c:505
 ____kasan_kmalloc mm/kasan/common.c:375 [inline]
 __kasan_kmalloc+0xa0/0xb8 mm/kasan/common.c:384
 kasan_kmalloc include/linux/kasan.h:211 [inline]
 kmalloc_trace+0x7c/0x94 mm/slab_common.c:1031
 kmalloc include/linux/slab.h:563 [inline]
 kzalloc include/linux/slab.h:699 [inline]
 tuner_probe+0xc8/0x1698 drivers/media/v4l2-core/tuner-core.c:638
 i2c_device_probe+0x690/0x8fc drivers/i2c/i2c-core-base.c:590
 call_driver_probe drivers/base/dd.c:-1 [inline]
 really_probe+0x39c/0xacc drivers/base/dd.c:639
 __driver_probe_device+0x180/0x310 drivers/base/dd.c:785
 driver_probe_device+0x78/0x324 drivers/base/dd.c:815
 __device_attach_driver+0x290/0x4d4 drivers/base/dd.c:943
 bus_for_each_drv+0x154/0x1e4 drivers/base/bus.c:429
 __device_attach+0x2ac/0x3dc drivers/base/dd.c:1015
 device_initial_probe+0x24/0x34 drivers/base/dd.c:1064
 bus_probe_device+0xbc/0x1c4 drivers/base/bus.c:489
 device_add+0xb04/0xf90 drivers/base/core.c:3697
 device_register+0x28/0x38 drivers/base/core.c:3779
 i2c_new_client_device+0x87c/0xe68 drivers/i2c/i2c-core-base.c:1018
 v4l2_i2c_new_subdev_board+0xb0/0x20c drivers/media/v4l2-core/v4l2-i2c.c:80
 v4l2_i2c_new_subdev+0x130/0x1b8 drivers/media/v4l2-core/v4l2-i2c.c:135
 em28xx_v4l2_init+0x6f4/0x2914 drivers/media/usb/em28xx/em28xx-video.c:2617
 em28xx_init_extension+0x10c/0x1b4 drivers/media/usb/em28xx/em28xx-core.c:1116
 request_module_async+0x68/0x98 drivers/media/usb/em28xx/em28xx-cards.c:3405
 process_one_work+0x7f8/0x13a4 kernel/workqueue.c:2292
 process_scheduled_works kernel/workqueue.c:2355 [inline]
 worker_thread+0xb64/0xfec kernel/workqueue.c:2444
 kthread+0x250/0x2d8 kernel/kthread.c:376
 ret_from_fork+0x10/0x20 arch/arm64/kernel/entry.S:850

The buggy address belongs to the object at ffff0000c3334000
 which belongs to the cache kmalloc-2k of size 2048
The buggy address is located 792 bytes inside of
 2048-byte region [ffff0000c3334000, ffff0000c3334800)

The buggy address belongs to the physical page:
page:0000000030eba524 refcount:1 mapcount:0 mapping:0000000000000000 index:0xffff0000c3334000 pfn:0x103330
head:0000000030eba524 order:3 compound_mapcount:0 compound_pincount:0
flags: 0x5ffc00000010200(slab|head|node=0|zone=2|lastcpupid=0x7ff)
raw: 05ffc00000010200 fffffc0003566808 fffffc0003577c08 ffff0000c0002900
raw: ffff0000c3334000 0000000000080007 00000001ffffffff 0000000000000000
page dumped because: kasan: bad access detected

Memory state around the buggy address:
 ffff0000c3334200: fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb
 ffff0000c3334280: fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb
>ffff0000c3334300: fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb
                            ^
 ffff0000c3334380: fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb
 ffff0000c3334400: fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb
==================================================================

Crashes (6):
Time Kernel Commit Syzkaller Config Log Report Syz repro C repro VM info Assets (help?) Manager Title
2026/01/19 03:46 linux-6.1.y cd9b81672742 20d37d28 .config console log report syz / log C [disk image] [vmlinux] [kernel image] ci2-linux-6-1-kasan-arm64 KASAN: use-after-free Read in load_firmware_cb
2026/01/15 16:34 linux-6.1.y bec0e10ee67e d6526ea3 .config console log report syz / log C [disk image] [vmlinux] [kernel image] ci2-linux-6-1-kasan-arm64 KASAN: use-after-free Read in load_firmware_cb
2025/10/18 17:26 linux-6.1.y c2fda4b3f577 1c8c8cd8 .config console log report syz / log C [disk image] [vmlinux] [kernel image] ci2-linux-6-1-kasan-arm64 KASAN: use-after-free Read in load_firmware_cb
2025/10/18 16:55 linux-6.1.y c2fda4b3f577 1c8c8cd8 .config console log report syz / log C [disk image] [vmlinux] [kernel image] ci2-linux-6-1-kasan-arm64 KASAN: use-after-free Read in load_firmware_cb
2025/12/17 13:33 linux-6.1.y 50cbba13faa2 d6526ea3 .config console log report info [disk image] [vmlinux] [kernel image] ci2-linux-6-1-kasan-arm64 KASAN: use-after-free Read in load_firmware_cb
2025/10/18 16:23 linux-6.1.y c2fda4b3f577 1c8c8cd8 .config console log report info [disk image] [vmlinux] [kernel image] ci2-linux-6-1-kasan-arm64 KASAN: use-after-free Read in load_firmware_cb
* Struck through repros no longer work on HEAD.