Hay
Date
Nov. 20, 2024, 6:35 a.m.

Environment
qemu-arm64
qemu-x86_64

[   38.946196] ==================================================================
[   38.947332] BUG: KASAN: slab-use-after-free in mempool_uaf_helper+0x314/0x340
[   38.948232] Read of size 1 at addr fff00000c652ee00 by task kunit_try_catch/216
[   38.948886] 
[   38.949340] CPU: 0 UID: 0 PID: 216 Comm: kunit_try_catch Tainted: G    B            N 6.12.0-next-20241120 #1
[   38.950429] Tainted: [B]=BAD_PAGE, [N]=TEST
[   38.951089] Hardware name: linux,dummy-virt (DT)
[   38.951836] Call trace:
[   38.952372]  show_stack+0x20/0x38 (C)
[   38.953025]  dump_stack_lvl+0x8c/0xd0
[   38.953624]  print_report+0x118/0x5e0
[   38.954206]  kasan_report+0xc8/0x118
[   38.954800]  __asan_report_load1_noabort+0x20/0x30
[   38.955433]  mempool_uaf_helper+0x314/0x340
[   38.956087]  mempool_kmalloc_uaf+0xbc/0x118
[   38.956717]  kunit_try_run_case+0x14c/0x3d0
[   38.957386]  kunit_generic_run_threadfn_adapter+0x88/0x100
[   38.958117]  kthread+0x24c/0x2d0
[   38.958668]  ret_from_fork+0x10/0x20
[   38.959214] 
[   38.959533] Allocated by task 216:
[   38.960049]  kasan_save_stack+0x3c/0x68
[   38.960645]  kasan_save_track+0x20/0x40
[   38.961234]  kasan_save_alloc_info+0x40/0x58
[   38.961900]  __kasan_mempool_unpoison_object+0x11c/0x180
[   38.962540]  remove_element+0x130/0x1f8
[   38.963154]  mempool_alloc_preallocated+0x58/0xc0
[   38.963759]  mempool_uaf_helper+0xa4/0x340
[   38.964389]  mempool_kmalloc_uaf+0xbc/0x118
[   38.964954]  kunit_try_run_case+0x14c/0x3d0
[   38.965617]  kunit_generic_run_threadfn_adapter+0x88/0x100
[   38.966256]  kthread+0x24c/0x2d0
[   38.966826]  ret_from_fork+0x10/0x20
[   38.967322] 
[   38.967706] Freed by task 216:
[   38.968210]  kasan_save_stack+0x3c/0x68
[   38.968757]  kasan_save_track+0x20/0x40
[   38.969368]  kasan_save_free_info+0x4c/0x78
[   38.969967]  __kasan_mempool_poison_object+0xc0/0x150
[   38.970689]  mempool_free+0x28c/0x328
[   38.971181]  mempool_uaf_helper+0x104/0x340
[   38.971827]  mempool_kmalloc_uaf+0xbc/0x118
[   38.972414]  kunit_try_run_case+0x14c/0x3d0
[   38.973023]  kunit_generic_run_threadfn_adapter+0x88/0x100
[   38.973674]  kthread+0x24c/0x2d0
[   38.974233]  ret_from_fork+0x10/0x20
[   38.974760] 
[   38.975085] The buggy address belongs to the object at fff00000c652ee00
[   38.975085]  which belongs to the cache kmalloc-128 of size 128
[   38.976383] The buggy address is located 0 bytes inside of
[   38.976383]  freed 128-byte region [fff00000c652ee00, fff00000c652ee80)
[   38.977617] 
[   38.977975] The buggy address belongs to the physical page:
[   38.978701] page: refcount:1 mapcount:0 mapping:0000000000000000 index:0x0 pfn:0x10652e
[   38.979628] flags: 0xbfffe0000000000(node=0|zone=2|lastcpupid=0x1ffff)
[   38.980433] page_type: f5(slab)
[   38.980961] raw: 0bfffe0000000000 fff00000c0001a00 dead000000000122 0000000000000000
[   38.981863] raw: 0000000000000000 0000000080100010 00000001f5000000 0000000000000000
[   38.982699] page dumped because: kasan: bad access detected
[   38.983325] 
[   38.983692] Memory state around the buggy address:
[   38.984346]  fff00000c652ed00: fa fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb
[   38.985119]  fff00000c652ed80: fc fc fc fc fc fc fc fc fc fc fc fc fc fc fc fc
[   38.985886] >fff00000c652ee00: fa fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb
[   38.986648]                    ^
[   38.987101]  fff00000c652ee80: fc fc fc fc fc fc fc fc fc fc fc fc fc fc fc fc
[   38.987919]  fff00000c652ef00: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
[   38.988806] ==================================================================
[   39.049087] ==================================================================
[   39.050278] BUG: KASAN: slab-use-after-free in mempool_uaf_helper+0x314/0x340
[   39.051162] Read of size 1 at addr fff00000c1bed240 by task kunit_try_catch/220
[   39.051997] 
[   39.052384] CPU: 1 UID: 0 PID: 220 Comm: kunit_try_catch Tainted: G    B            N 6.12.0-next-20241120 #1
[   39.053652] Tainted: [B]=BAD_PAGE, [N]=TEST
[   39.055076] Hardware name: linux,dummy-virt (DT)
[   39.055571] Call trace:
[   39.055867]  show_stack+0x20/0x38 (C)
[   39.056355]  dump_stack_lvl+0x8c/0xd0
[   39.057055]  print_report+0x118/0x5e0
[   39.057627]  kasan_report+0xc8/0x118
[   39.058106]  __asan_report_load1_noabort+0x20/0x30
[   39.058833]  mempool_uaf_helper+0x314/0x340
[   39.059467]  mempool_slab_uaf+0xb8/0x110
[   39.060019]  kunit_try_run_case+0x14c/0x3d0
[   39.060986]  kunit_generic_run_threadfn_adapter+0x88/0x100
[   39.061714]  kthread+0x24c/0x2d0
[   39.062190]  ret_from_fork+0x10/0x20
[   39.063110] 
[   39.063409] Allocated by task 220:
[   39.064162]  kasan_save_stack+0x3c/0x68
[   39.064779]  kasan_save_track+0x20/0x40
[   39.065412]  kasan_save_alloc_info+0x40/0x58
[   39.066857]  __kasan_mempool_unpoison_object+0xbc/0x180
[   39.067556]  remove_element+0x16c/0x1f8
[   39.068134]  mempool_alloc_preallocated+0x58/0xc0
[   39.068796]  mempool_uaf_helper+0xa4/0x340
[   39.069313]  mempool_slab_uaf+0xb8/0x110
[   39.070226]  kunit_try_run_case+0x14c/0x3d0
[   39.070732]  kunit_generic_run_threadfn_adapter+0x88/0x100
[   39.071410]  kthread+0x24c/0x2d0
[   39.071849]  ret_from_fork+0x10/0x20
[   39.072847] 
[   39.073194] Freed by task 220:
[   39.073769]  kasan_save_stack+0x3c/0x68
[   39.074421]  kasan_save_track+0x20/0x40
[   39.075042]  kasan_save_free_info+0x4c/0x78
[   39.075712]  __kasan_mempool_poison_object+0xc0/0x150
[   39.076548]  mempool_free+0x28c/0x328
[   39.077199]  mempool_uaf_helper+0x104/0x340
[   39.078247]  mempool_slab_uaf+0xb8/0x110
[   39.078977]  kunit_try_run_case+0x14c/0x3d0
[   39.079585]  kunit_generic_run_threadfn_adapter+0x88/0x100
[   39.080319]  kthread+0x24c/0x2d0
[   39.081210]  ret_from_fork+0x10/0x20
[   39.081816] 
[   39.082211] The buggy address belongs to the object at fff00000c1bed240
[   39.082211]  which belongs to the cache test_cache of size 123
[   39.083506] The buggy address is located 0 bytes inside of
[   39.083506]  freed 123-byte region [fff00000c1bed240, fff00000c1bed2bb)
[   39.084766] 
[   39.085226] The buggy address belongs to the physical page:
[   39.086266] page: refcount:1 mapcount:0 mapping:0000000000000000 index:0x0 pfn:0x101bed
[   39.088052] flags: 0xbfffe0000000000(node=0|zone=2|lastcpupid=0x1ffff)
[   39.088935] page_type: f5(slab)
[   39.089588] raw: 0bfffe0000000000 fff00000c59d3a00 dead000000000122 0000000000000000
[   39.090609] raw: 0000000000000000 0000000080150015 00000001f5000000 0000000000000000
[   39.091585] page dumped because: kasan: bad access detected
[   39.092181] 
[   39.092489] Memory state around the buggy address:
[   39.093242]  fff00000c1bed100: fb fb fb fb fb fb fb fb fc fc fc fc fc fc fc fc
[   39.094464]  fff00000c1bed180: fa fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb
[   39.095307] >fff00000c1bed200: fc fc fc fc fc fc fc fc fa fb fb fb fb fb fb fb
[   39.096588]                                            ^
[   39.097129]  fff00000c1bed280: fb fb fb fb fb fb fb fb fc fc fc fc fc fc fc fc
[   39.097800]  fff00000c1bed300: fc fc fc fc fc fc fc fc fc fc fc fc fc fc fc fc
[   39.098364] ==================================================================

[   30.605627] ==================================================================
[   30.606386] BUG: KASAN: slab-use-after-free in mempool_uaf_helper+0x394/0x400
[   30.606788] Read of size 1 at addr ffff888101ad9240 by task kunit_try_catch/238
[   30.607152] 
[   30.607309] CPU: 0 UID: 0 PID: 238 Comm: kunit_try_catch Tainted: G    B            N 6.12.0-next-20241120 #1
[   30.609187] Tainted: [B]=BAD_PAGE, [N]=TEST
[   30.611219] Hardware name: QEMU Standard PC (Q35 + ICH9, 2009), BIOS 1.16.3-debian-1.16.3-2 04/01/2014
[   30.612117] Call Trace:
[   30.612385]  <TASK>
[   30.612645]  dump_stack_lvl+0x73/0xb0
[   30.614686]  print_report+0xd1/0x640
[   30.615526]  ? __virt_addr_valid+0x1db/0x2d0
[   30.616154]  ? kasan_complete_mode_report_info+0x64/0x200
[   30.616477]  kasan_report+0x102/0x140
[   30.616836]  ? mempool_uaf_helper+0x394/0x400
[   30.617115]  ? mempool_uaf_helper+0x394/0x400
[   30.617397]  __asan_report_load1_noabort+0x18/0x20
[   30.617764]  mempool_uaf_helper+0x394/0x400
[   30.619085]  ? __pfx_mempool_uaf_helper+0x10/0x10
[   30.620201]  ? finish_task_switch.isra.0+0x153/0x700
[   30.621379]  mempool_slab_uaf+0xae/0x100
[   30.621882]  ? __pfx_mempool_slab_uaf+0x10/0x10
[   30.622960]  ? __switch_to+0x5d9/0xf60
[   30.623468]  ? __pfx_mempool_alloc_slab+0x10/0x10
[   30.623978]  ? __pfx_mempool_free_slab+0x10/0x10
[   30.624658]  ? __pfx_read_tsc+0x10/0x10
[   30.625328]  ? ktime_get_ts64+0x84/0x230
[   30.625666]  kunit_try_run_case+0x1b3/0x490
[   30.626462]  ? __pfx_kunit_try_run_case+0x10/0x10
[   30.627079]  ? _raw_spin_lock_irqsave+0xa2/0x110
[   30.627662]  ? _raw_spin_unlock_irqrestore+0x5f/0x90
[   30.628290]  ? __kthread_parkme+0x82/0x160
[   30.629052]  ? preempt_count_sub+0x50/0x80
[   30.630195]  ? __pfx_kunit_try_run_case+0x10/0x10
[   30.630782]  ? __pfx_kunit_generic_run_threadfn_adapter+0x10/0x10
[   30.631550]  kunit_generic_run_threadfn_adapter+0x85/0xf0
[   30.632721]  kthread+0x257/0x310
[   30.633133]  ? __pfx_kthread+0x10/0x10
[   30.633869]  ret_from_fork+0x41/0x80
[   30.634383]  ? __pfx_kthread+0x10/0x10
[   30.634860]  ret_from_fork_asm+0x1a/0x30
[   30.635367]  </TASK>
[   30.635673] 
[   30.636029] Allocated by task 238:
[   30.636954]  kasan_save_stack+0x3d/0x60
[   30.637944]  kasan_save_track+0x18/0x40
[   30.638418]  kasan_save_alloc_info+0x3b/0x50
[   30.639015]  __kasan_mempool_unpoison_object+0x1bb/0x200
[   30.640025]  remove_element+0x11e/0x190
[   30.640510]  mempool_alloc_preallocated+0x4d/0x90
[   30.641212]  mempool_uaf_helper+0x97/0x400
[   30.642273]  mempool_slab_uaf+0xae/0x100
[   30.642723]  kunit_try_run_case+0x1b3/0x490
[   30.643407]  kunit_generic_run_threadfn_adapter+0x85/0xf0
[   30.643920]  kthread+0x257/0x310
[   30.644501]  ret_from_fork+0x41/0x80
[   30.645407]  ret_from_fork_asm+0x1a/0x30
[   30.645613] 
[   30.645777] Freed by task 238:
[   30.646973]  kasan_save_stack+0x3d/0x60
[   30.647762]  kasan_save_track+0x18/0x40
[   30.648034]  kasan_save_free_info+0x3f/0x60
[   30.648630]  __kasan_mempool_poison_object+0x131/0x1d0
[   30.649503]  mempool_free+0x2ec/0x380
[   30.650076]  mempool_uaf_helper+0x11b/0x400
[   30.650677]  mempool_slab_uaf+0xae/0x100
[   30.651262]  kunit_try_run_case+0x1b3/0x490
[   30.651940]  kunit_generic_run_threadfn_adapter+0x85/0xf0
[   30.652909]  kthread+0x257/0x310
[   30.653196]  ret_from_fork+0x41/0x80
[   30.654295]  ret_from_fork_asm+0x1a/0x30
[   30.654796] 
[   30.655134] The buggy address belongs to the object at ffff888101ad9240
[   30.655134]  which belongs to the cache test_cache of size 123
[   30.656267] The buggy address is located 0 bytes inside of
[   30.656267]  freed 123-byte region [ffff888101ad9240, ffff888101ad92bb)
[   30.657718] 
[   30.657941] The buggy address belongs to the physical page:
[   30.658438] page: refcount:1 mapcount:0 mapping:0000000000000000 index:0x0 pfn:0x101ad9
[   30.659360] flags: 0x200000000000000(node=0|zone=2)
[   30.660039] page_type: f5(slab)
[   30.660787] raw: 0200000000000000 ffff888101ad2140 dead000000000122 0000000000000000
[   30.661683] raw: 0000000000000000 0000000080150015 00000001f5000000 0000000000000000
[   30.662550] page dumped because: kasan: bad access detected
[   30.663089] 
[   30.663485] Memory state around the buggy address:
[   30.664029]  ffff888101ad9100: fb fb fb fb fb fb fb fb fc fc fc fc fc fc fc fc
[   30.665208]  ffff888101ad9180: fa fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb
[   30.665939] >ffff888101ad9200: fc fc fc fc fc fc fc fc fa fb fb fb fb fb fb fb
[   30.666834]                                            ^
[   30.667883]  ffff888101ad9280: fb fb fb fb fb fb fb fb fc fc fc fc fc fc fc fc
[   30.669042]  ffff888101ad9300: fc fc fc fc fc fc fc fc fc fc fc fc fc fc fc fc
[   30.670178] ==================================================================
[   30.482037] ==================================================================
[   30.482821] BUG: KASAN: slab-use-after-free in mempool_uaf_helper+0x394/0x400
[   30.483232] Read of size 1 at addr ffff888101acf900 by task kunit_try_catch/234
[   30.484533] 
[   30.484959] CPU: 0 UID: 0 PID: 234 Comm: kunit_try_catch Tainted: G    B            N 6.12.0-next-20241120 #1
[   30.486592] Tainted: [B]=BAD_PAGE, [N]=TEST
[   30.487589] Hardware name: QEMU Standard PC (Q35 + ICH9, 2009), BIOS 1.16.3-debian-1.16.3-2 04/01/2014
[   30.489028] Call Trace:
[   30.489621]  <TASK>
[   30.489917]  dump_stack_lvl+0x73/0xb0
[   30.491058]  print_report+0xd1/0x640
[   30.491926]  ? __virt_addr_valid+0x1db/0x2d0
[   30.492520]  ? kasan_complete_mode_report_info+0x64/0x200
[   30.493196]  kasan_report+0x102/0x140
[   30.493803]  ? mempool_uaf_helper+0x394/0x400
[   30.494566]  ? mempool_uaf_helper+0x394/0x400
[   30.495204]  __asan_report_load1_noabort+0x18/0x20
[   30.495843]  mempool_uaf_helper+0x394/0x400
[   30.496571]  ? __pfx_mempool_uaf_helper+0x10/0x10
[   30.497064]  ? finish_task_switch.isra.0+0x153/0x700
[   30.497940]  mempool_kmalloc_uaf+0xb3/0x100
[   30.498624]  ? __pfx_mempool_kmalloc_uaf+0x10/0x10
[   30.499482]  ? __switch_to+0x5d9/0xf60
[   30.500263]  ? __pfx_mempool_kmalloc+0x10/0x10
[   30.501058]  ? __pfx_mempool_kfree+0x10/0x10
[   30.501925]  ? __pfx_read_tsc+0x10/0x10
[   30.502588]  ? ktime_get_ts64+0x84/0x230
[   30.503376]  kunit_try_run_case+0x1b3/0x490
[   30.504100]  ? __pfx_kunit_try_run_case+0x10/0x10
[   30.505171]  ? _raw_spin_lock_irqsave+0xa2/0x110
[   30.505777]  ? _raw_spin_unlock_irqrestore+0x5f/0x90
[   30.506903]  ? __kthread_parkme+0x82/0x160
[   30.507469]  ? preempt_count_sub+0x50/0x80
[   30.507925]  ? __pfx_kunit_try_run_case+0x10/0x10
[   30.508397]  ? __pfx_kunit_generic_run_threadfn_adapter+0x10/0x10
[   30.509942]  kunit_generic_run_threadfn_adapter+0x85/0xf0
[   30.510599]  kthread+0x257/0x310
[   30.511367]  ? __pfx_kthread+0x10/0x10
[   30.512153]  ret_from_fork+0x41/0x80
[   30.512806]  ? __pfx_kthread+0x10/0x10
[   30.513852]  ret_from_fork_asm+0x1a/0x30
[   30.514807]  </TASK>
[   30.515126] 
[   30.515605] Allocated by task 234:
[   30.516405]  kasan_save_stack+0x3d/0x60
[   30.516816]  kasan_save_track+0x18/0x40
[   30.517761]  kasan_save_alloc_info+0x3b/0x50
[   30.518353]  __kasan_mempool_unpoison_object+0x1a9/0x200
[   30.519361]  remove_element+0x11e/0x190
[   30.520042]  mempool_alloc_preallocated+0x4d/0x90
[   30.521071]  mempool_uaf_helper+0x97/0x400
[   30.521455]  mempool_kmalloc_uaf+0xb3/0x100
[   30.522401]  kunit_try_run_case+0x1b3/0x490
[   30.523190]  kunit_generic_run_threadfn_adapter+0x85/0xf0
[   30.524263]  kthread+0x257/0x310
[   30.524581]  ret_from_fork+0x41/0x80
[   30.525541]  ret_from_fork_asm+0x1a/0x30
[   30.526148] 
[   30.526401] Freed by task 234:
[   30.527295]  kasan_save_stack+0x3d/0x60
[   30.527612]  kasan_save_track+0x18/0x40
[   30.528920]  kasan_save_free_info+0x3f/0x60
[   30.529305]  __kasan_mempool_poison_object+0x131/0x1d0
[   30.530245]  mempool_free+0x2ec/0x380
[   30.531016]  mempool_uaf_helper+0x11b/0x400
[   30.531301]  mempool_kmalloc_uaf+0xb3/0x100
[   30.532070]  kunit_try_run_case+0x1b3/0x490
[   30.532550]  kunit_generic_run_threadfn_adapter+0x85/0xf0
[   30.533348]  kthread+0x257/0x310
[   30.534127]  ret_from_fork+0x41/0x80
[   30.534788]  ret_from_fork_asm+0x1a/0x30
[   30.535540] 
[   30.535811] The buggy address belongs to the object at ffff888101acf900
[   30.535811]  which belongs to the cache kmalloc-128 of size 128
[   30.537515] The buggy address is located 0 bytes inside of
[   30.537515]  freed 128-byte region [ffff888101acf900, ffff888101acf980)
[   30.538506] 
[   30.538734] The buggy address belongs to the physical page:
[   30.539829] page: refcount:1 mapcount:0 mapping:0000000000000000 index:0x0 pfn:0x101acf
[   30.540862] flags: 0x200000000000000(node=0|zone=2)
[   30.541612] page_type: f5(slab)
[   30.541878] raw: 0200000000000000 ffff888100041a00 dead000000000122 0000000000000000
[   30.542651] raw: 0000000000000000 0000000080100010 00000001f5000000 0000000000000000
[   30.543275] page dumped because: kasan: bad access detected
[   30.544300] 
[   30.544441] Memory state around the buggy address:
[   30.545647]  ffff888101acf800: fa fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb
[   30.547051]  ffff888101acf880: fc fc fc fc fc fc fc fc fc fc fc fc fc fc fc fc
[   30.547990] >ffff888101acf900: fa fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb
[   30.548966]                    ^
[   30.549759]  ffff888101acf980: fc fc fc fc fc fc fc fc fc fc fc fc fc fc fc fc
[   30.550940]  ffff888101acfa00: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
[   30.551651] ==================================================================