Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- ==================================================================
- BUG: KASAN: slab-use-after-free in dev_map_enqueue+0x3b/0x80 kernel/bpf/devmap.c:529
- Read of size 8 at addr ffff8881135c2480 by task syz.0.89/3134
- CPU: 1 PID: 3134 Comm: syz.0.89 Not tainted 6.6.52-syzkaller #0
- Call Trace:
- <TASK>
- __dump_stack lib/dump_stack.c:88 [inline]
- dump_stack_lvl+0x1b5/0x2a0 lib/dump_stack.c:106
- print_address_description mm/kasan/report.c:364 [inline]
- print_report+0x164/0x510 mm/kasan/report.c:475
- kasan_report+0x107/0x140 mm/kasan/report.c:588
- dev_map_enqueue+0x3b/0x80 kernel/bpf/devmap.c:529
- __xdp_do_redirect_frame net/core/filter.c:4381 [inline]
- xdp_do_redirect+0x592/0xab0 net/core/filter.c:4421
- tun_xdp_act+0xea/0xc80 drivers/net/tun.c:1633
- tun_build_skb drivers/net/tun.c:1723 [inline]
- tun_get_user+0x2e86/0x3f20 drivers/net/tun.c:1826
- tun_chr_write_iter+0x113/0x1f0 drivers/net/tun.c:2055
- call_write_iter include/linux/fs.h:2018 [inline]
- new_sync_write fs/read_write.c:491 [inline]
- vfs_write+0x856/0xbd0 fs/read_write.c:584
- ksys_write+0x17c/0x2a0 fs/read_write.c:637
- do_syscall_x64 arch/x86/entry/common.c:51 [inline]
- do_syscall_64+0x2d/0x50 arch/x86/entry/common.c:81
- entry_SYSCALL_64_after_hwframe+0x68/0xd2
- RIP: 0033:0x7f1c1a17cadf
- Code: 89 54 24 18 48 89 74 24 10 89 7c 24 08 e8 c9 8d 02 00 48 8b 54 24 18 48 8b 74 24 10 41 89 c0 8b 7c 24 08 b8 01 00 00 00 0f 05 <48> 3d 00 f0 ff ff 77 31 44 89 c7 48 89 44 24 08 e8 1c 8e 02 00 48
- RSP: 002b:00007f1c1af2e000 EFLAGS: 00000293 ORIG_RAX: 0000000000000001
- RAX: ffffffffffffffda RBX: 00007f1c1a335f80 RCX: 00007f1c1a17cadf
- RDX: 0000000000000016 RSI: 0000000020001b40 RDI: 00000000000000c8
- RBP: 00007f1c1a1f0296 R08: 0000000000000000 R09: 0000000000000000
- R10: 0000000000000016 R11: 0000000000000293 R12: 0000000000000000
- R13: 0000000000000000 R14: 00007f1c1a335f80 R15: 00007ffd7b9bb328
- </TASK>
- Allocated by task 3128:
- kasan_save_stack mm/kasan/common.c:45 [inline]
- kasan_set_track+0x40/0x70 mm/kasan/common.c:52
- ____kasan_kmalloc mm/kasan/common.c:374 [inline]
- __kasan_kmalloc+0x98/0xb0 mm/kasan/common.c:383
- kasan_kmalloc include/linux/kasan.h:198 [inline]
- __do_kmalloc_node mm/slab_common.c:1007 [inline]
- __kmalloc_node+0xb7/0x210 mm/slab_common.c:1014
- kmalloc_node include/linux/slab.h:620 [inline]
- bpf_map_kmalloc_node+0xd2/0x1c0 kernel/bpf/syscall.c:422
- __dev_map_alloc_node+0x56/0x490 kernel/bpf/devmap.c:856
- __dev_map_hash_update_elem kernel/bpf/devmap.c:967 [inline]
- dev_map_hash_update_elem+0x306/0x780 kernel/bpf/devmap.c:1001
- bpf_map_update_value+0x6ef/0x7c0 kernel/bpf/syscall.c:201
- map_update_elem+0x5b7/0x720 kernel/bpf/syscall.c:1552
- __sys_bpf+0x758/0x810 kernel/bpf/syscall.c:5416
- __do_sys_bpf kernel/bpf/syscall.c:5532 [inline]
- __se_sys_bpf kernel/bpf/syscall.c:5530 [inline]
- __x64_sys_bpf+0x7c/0x90 kernel/bpf/syscall.c:5530
- do_syscall_x64 arch/x86/entry/common.c:51 [inline]
- do_syscall_64+0x2d/0x50 arch/x86/entry/common.c:81
- entry_SYSCALL_64_after_hwframe+0x68/0xd2
- Freed by task 34:
- kasan_save_stack mm/kasan/common.c:45 [inline]
- kasan_set_track+0x40/0x70 mm/kasan/common.c:52
- kasan_save_free_info+0x25/0x40 mm/kasan/generic.c:522
- ____kasan_slab_free+0xb5/0x100 mm/kasan/common.c:236
- kasan_slab_free include/linux/kasan.h:164 [inline]
- __cache_free mm/slab.c:3370 [inline]
- __do_kmem_cache_free mm/slab.c:3557 [inline]
- __kmem_cache_free+0x1a1/0x2b0 mm/slab.c:3564
- dev_map_free+0x397/0x680 kernel/bpf/devmap.c:218
- bpf_map_free_deferred+0xd3/0xf0 kernel/bpf/syscall.c:700
- process_one_work kernel/workqueue.c:2631 [inline]
- process_scheduled_works+0x92d/0x14a0 kernel/workqueue.c:2704
- worker_thread+0xa5f/0xff0 kernel/workqueue.c:2785
- kthread+0x2a2/0x330 kernel/kthread.c:388
- ret_from_fork+0x48/0x80 arch/x86/kernel/process.c:147
- ret_from_fork_asm+0x11/0x20 arch/x86/entry/entry_64.S:293
- Last potentially related work creation:
- kasan_save_stack+0x2f/0x50 mm/kasan/common.c:45
- __kasan_record_aux_stack mm/kasan/generic.c:492 [inline]
- kasan_record_aux_stack_noalloc+0x81/0x90 mm/kasan/generic.c:502
- __call_rcu_common kernel/rcu/tree.c:2713 [inline]
- call_rcu+0x18b/0x14a0 kernel/rcu/tree.c:2827
- nf_hook_entries_free net/netfilter/core.c:88 [inline]
- __nf_register_net_hook+0x788/0x930 net/netfilter/core.c:457
- nf_register_net_hook+0xb0/0x190 net/netfilter/core.c:578
- nf_register_net_hooks+0x41/0x1a0 net/netfilter/core.c:594
- nf_nat_register_fn+0x3ac/0x570 net/netfilter/nf_nat_core.c:1123
- ipt_nat_register_lookups net/ipv4/netfilter/iptable_nat.c:77 [inline]
- iptable_nat_table_init+0xd4/0x2d0 net/ipv4/netfilter/iptable_nat.c:121
- xt_find_table_lock+0x2d0/0x3b0 net/netfilter/x_tables.c:1259
- xt_request_find_table_lock+0x26/0x100 net/netfilter/x_tables.c:1284
- get_info net/ipv4/netfilter/ip_tables.c:963 [inline]
- do_ipt_get_ctl+0x5a6/0x1590 net/ipv4/netfilter/ip_tables.c:1659
- nf_getsockopt+0x293/0x2c0 net/netfilter/nf_sockopt.c:116
- ip_getsockopt+0x1f3/0x2b0 net/ipv4/ip_sockglue.c:1790
- tcp_getsockopt+0x160/0x1c0 net/ipv4/tcp.c:4317
- do_sock_getsockopt+0x3bd/0x790 net/socket.c:2379
- __sys_getsockopt+0x1d9/0x2b0 net/socket.c:2408
- __do_sys_getsockopt net/socket.c:2418 [inline]
- __se_sys_getsockopt net/socket.c:2415 [inline]
- __x64_sys_getsockopt+0xb5/0xd0 net/socket.c:2415
- do_syscall_x64 arch/x86/entry/common.c:51 [inline]
- do_syscall_64+0x2d/0x50 arch/x86/entry/common.c:81
- entry_SYSCALL_64_after_hwframe+0x68/0xd2
- The buggy address belongs to the object at ffff8881135c2480
- which belongs to the cache kmalloc-cg-64 of size 64
- The buggy address is located 0 bytes inside of
- freed 64-byte region [ffff8881135c2480, ffff8881135c24c0)
- The buggy address belongs to the physical page:
- page:ffffea00044d7080 refcount:1 mapcount:0 mapping:0000000000000000 index:0x0 pfn:0x1135c2
- memcg:ffff88810ff19201
- flags: 0x400000000000800(slab|node=0|zone=1)
- page_type: 0x20()
- raw: 0400000000000800 ffff888100043900 ffffea00040edd10 ffffea0005f18810
- raw: 0000000000000000 ffff8881135c2000 0000000100000020 ffff88810ff19201
- page dumped because: kasan: bad access detected
- page_owner tracks the page as allocated
- page last allocated via order 0, migratetype Unmovable, gfp_mask 0x2420c0(__GFP_IO|__GFP_FS|__GFP_NOWARN|__GFP_COMP|__GFP_THISNODE), pid 1, tgid 1 (swapper/0), ts 4115548462, free_ts 4112513936
- set_page_owner include/linux/page_owner.h:31 [inline]
- post_alloc_hook+0x1e7/0x210 mm/page_alloc.c:1541
- prep_new_page mm/page_alloc.c:1548 [inline]
- get_page_from_freelist+0x2f35/0x32e0 mm/page_alloc.c:3178
- __alloc_pages+0x291/0x770 mm/page_alloc.c:4434
- __alloc_pages_node include/linux/gfp.h:237 [inline]
- kmem_getpages mm/slab.c:1356 [inline]
- cache_grow_begin+0x9f/0x620 mm/slab.c:2550
- cache_alloc_refill+0x31b/0x3e0 mm/slab.c:2923
- ____cache_alloc mm/slab.c:2999 [inline]
- __do_cache_alloc mm/slab.c:3185 [inline]
- slab_alloc_node mm/slab.c:3230 [inline]
- __kmem_cache_alloc_node+0x336/0x370 mm/slab.c:3521
- __do_kmalloc_node mm/slab_common.c:1006 [inline]
- __kmalloc_node+0xa6/0x210 mm/slab_common.c:1014
- kmalloc_node include/linux/slab.h:620 [inline]
- __alloc kernel/bpf/memalloc.c:151 [inline]
- alloc_bulk+0x45e/0x6e0 kernel/bpf/memalloc.c:245
- prefill_mem_cache kernel/bpf/memalloc.c:486 [inline]
- bpf_mem_alloc_init+0x765/0x910 kernel/bpf/memalloc.c:554
- bpf_global_ma_init+0x1a/0x40 kernel/bpf/core.c:2941
- do_one_initcall+0x247/0x850 init/main.c:1238
- do_initcall_level+0x157/0x210 init/main.c:1300
- do_initcalls+0x3f/0x80 init/main.c:1316
- kernel_init_freeable+0x3f1/0x590 init/main.c:1553
- kernel_init+0x1d/0x2a0 init/main.c:1443
- ret_from_fork+0x48/0x80 arch/x86/kernel/process.c:147
- page last free stack trace:
- reset_page_owner include/linux/page_owner.h:24 [inline]
- free_pages_prepare mm/page_alloc.c:1141 [inline]
- free_unref_page_prepare+0x86b/0x950 mm/page_alloc.c:2323
- free_unref_page+0x37/0x340 mm/page_alloc.c:2416
- vfree+0x181/0x2d0 mm/vmalloc.c:2859
- delayed_vfree_work+0x56/0x80 mm/vmalloc.c:2780
- process_one_work kernel/workqueue.c:2631 [inline]
- process_scheduled_works+0x92d/0x14a0 kernel/workqueue.c:2704
- worker_thread+0xa5f/0xff0 kernel/workqueue.c:2785
- kthread+0x2a2/0x330 kernel/kthread.c:388
- ret_from_fork+0x48/0x80 arch/x86/kernel/process.c:147
- ret_from_fork_asm+0x11/0x20 arch/x86/entry/entry_64.S:293
- Memory state around the buggy address:
- ffff8881135c2380: fb fb fb fb fb fb fb fb fc fc fc fc fc fc fc fc
- ffff8881135c2400: fa fb fb fb fb fb fb fb fc fc fc fc fc fc fc fc
- >ffff8881135c2480: fa fb fb fb fb fb fb fb fc fc fc fc fc fc fc fc
- ^
- ffff8881135c2500: fb fb fb fb fb fb fb fb fc fc fc fc fc fc fc fc
- ffff8881135c2580: fb fb fb fb fb fb fb fb fc fc fc fc fc fc fc fc
- ==================================================================
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement