KASAN: slab-use-after-free Read in nf_nat_ipv6_in

Status: upstream: reported on 2026/10/22 01:38
Reported-by: syzbot+33d35b57677924d30e6b@syzkaller.appspotmail.com
First crash: 22d, last: 7h24m
▶ ▼ Similar bugs (1)
Kernel Title Rank 🛈 Repro Cause bisect Fix bisect Count Last Reported Patched Status
linux-6.1 KASAN: use-after-free Read in nf_nat_ipv6_in 19 syz, C 9 4h36m 11d 0/3 upstream: reported C repro on 2026/11/02 12:08

Sample crash report:
==================================================================
BUG: KASAN: slab-use-after-free in skb_network_header include/linux/skbuff.h:2952 [inline]
BUG: KASAN: slab-use-after-free in ipv6_hdr include/linux/ipv6.h:101 [inline]
BUG: KASAN: slab-use-after-free in nf_nat_ipv6_in+0x141/0x2c0 net/netfilter/nf_nat_proto.c:949
Read of size 8 at addr ffff88807761c490 by task syz.0.1914/11756

CPU: 0 PID: 11756 Comm: syz.0.1914 Not tainted syzkaller #0
Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 11/06/2026
Call Trace:
 <TASK>
 dump_stack_lvl+0x18c/0x250 lib/dump_stack.c:106
 print_address_description mm/kasan/report.c:364 [inline]
 print_report+0xa8/0x210 mm/kasan/report.c:468
 kasan_report+0x117/0x150 mm/kasan/report.c:581
 skb_network_header include/linux/skbuff.h:2952 [inline]
 ipv6_hdr include/linux/ipv6.h:101 [inline]
 nf_nat_ipv6_in+0x141/0x2c0 net/netfilter/nf_nat_proto.c:949
 nf_hook_entry_hookfn include/linux/netfilter.h:156 [inline]
 nf_hook_slow+0xb9/0x210 net/netfilter/core.c:626
 nf_hook include/linux/netfilter.h:271 [inline]
 NF_HOOK+0x21d/0x3b0 include/linux/netfilter.h:314
 __netif_receive_skb_one_core net/core/dev.c:5710 [inline]
 __netif_receive_skb+0xcc/0x290 net/core/dev.c:5824
 netif_receive_skb_internal net/core/dev.c:5910 [inline]
 netif_receive_skb+0x1bc/0x720 net/core/dev.c:5969
 tun_rx_batched+0x1df/0x790 drivers/net/tun.c:1561
 tun_get_user+0x286c/0x3d30 drivers/net/tun.c:2020
 tun_chr_write_iter+0x119/0x200 drivers/net/tun.c:2066
 call_write_iter include/linux/fs.h:2019 [inline]
 new_sync_write fs/read_write.c:491 [inline]
 vfs_write+0x474/0x9a0 fs/read_write.c:584
 ksys_write+0x151/0x260 fs/read_write.c:637
 do_syscall_x64 arch/x86/entry/common.c:46 [inline]
 do_syscall_64+0x55/0xb0 arch/x86/entry/common.c:76
 entry_SYSCALL_64_after_hwframe+0x68/0xd2
RIP: 0033:0x7f52893a94d9
Code: ff c3 66 2e 0f 1f 84 00 00 00 00 00 0f 1f 44 00 00 48 89 f8 48 89 f7 48 89 d6 48 89 ca 4d 89 c2 4d 89 c8 4c 8b 4c 24 08 0f 05 <48> 3d 01 f0 ff ff 73 01 c3 48 c7 c1 e8 ff ff ff f7 d8 64 89 01 48
RSP: 002b:00007f528a233028 EFLAGS: 00000246 ORIG_RAX: 0000000000000001
RAX: ffffffffffffffda RBX: 00007f5289625fa0 RCX: 00007f52893a94d9
RDX: 000000000000fdef RSI: 0000200000000400 RDI: 0000000000000003
RBP: 00007f528943804e R08: 0000000000000000 R09: 0000000000000000
R10: 0000000000000000 R11: 0000000000000246 R12: 0000000000000000
R13: 00007f5289626038 R14: 00007f5289625fa0 R15: 00007ffc10edc278
 </TASK>

Allocated by task 11756:
 kasan_save_stack mm/kasan/common.c:46 [inline]
 kasan_set_track+0x4e/0x70 mm/kasan/common.c:53
 __kasan_slab_alloc+0x6c/0x80 mm/kasan/common.c:329
 kasan_slab_alloc include/linux/kasan.h:188 [inline]
 slab_post_alloc_hook+0x6a/0x4d0 mm/slab.h:770
 slab_alloc_node mm/slub.c:3518 [inline]
 kmem_cache_alloc_node+0x1af/0x320 mm/slub.c:3563
 __alloc_skb+0x103/0x2c0 net/core/skbuff.c:643
 alloc_skb include/linux/skbuff.h:1316 [inline]
 alloc_skb_with_frags+0xcd/0x7a0 net/core/skbuff.c:6365
 sock_alloc_send_pskb+0x969/0xa80 net/core/sock.c:2852
 tun_alloc_skb drivers/net/tun.c:1537 [inline]
 tun_get_user+0xa44/0x3d30 drivers/net/tun.c:1858
 tun_chr_write_iter+0x119/0x200 drivers/net/tun.c:2066
 call_write_iter include/linux/fs.h:2019 [inline]
 new_sync_write fs/read_write.c:491 [inline]
 vfs_write+0x474/0x9a0 fs/read_write.c:584
 ksys_write+0x151/0x260 fs/read_write.c:637
 do_syscall_x64 arch/x86/entry/common.c:46 [inline]
 do_syscall_64+0x55/0xb0 arch/x86/entry/common.c:76
 entry_SYSCALL_64_after_hwframe+0x68/0xd2

Freed by task 11756:
 kasan_save_stack mm/kasan/common.c:46 [inline]
 kasan_set_track+0x4e/0x70 mm/kasan/common.c:53
 kasan_save_free_info+0x28/0x40 mm/kasan/generic.c:522
 ____kasan_slab_free+0x126/0x1f0 mm/kasan/common.c:237
 kasan_slab_free include/linux/kasan.h:164 [inline]
 slab_free_hook mm/slub.c:1833 [inline]
 slab_free_freelist_hook+0x154/0x240 mm/slub.c:1859
 slab_free mm/slub.c:3853 [inline]
 kmem_cache_free+0xf8/0x290 mm/slub.c:3875
 NF_DROP_REASON include/linux/netfilter.h:30 [inline]
 nft_do_chain+0x14d9/0x16d0 net/netfilter/nf_tables_core.c:-1
 nft_nat_do_chain+0x29b/0x380 net/netfilter/nft_chain_nat.c:32
 nf_nat_inet_fn+0x5dd/0xb20 net/netfilter/nf_nat_core.c:958
 nf_nat_ipv6_fn+0x227/0x2e0 net/netfilter/nf_nat_proto.c:937
 nf_nat_ipv6_in+0xf1/0x2c0 net/netfilter/nf_nat_proto.c:947
 nf_hook_entry_hookfn include/linux/netfilter.h:156 [inline]
 nf_hook_slow+0xb9/0x210 net/netfilter/core.c:626
 nf_hook include/linux/netfilter.h:271 [inline]
 NF_HOOK+0x21d/0x3b0 include/linux/netfilter.h:314
 __netif_receive_skb_one_core net/core/dev.c:5710 [inline]
 __netif_receive_skb+0xcc/0x290 net/core/dev.c:5824
 netif_receive_skb_internal net/core/dev.c:5910 [inline]
 netif_receive_skb+0x1bc/0x720 net/core/dev.c:5969
 tun_rx_batched+0x1df/0x790 drivers/net/tun.c:1561
 tun_get_user+0x286c/0x3d30 drivers/net/tun.c:2020
 tun_chr_write_iter+0x119/0x200 drivers/net/tun.c:2066
 call_write_iter include/linux/fs.h:2019 [inline]
 new_sync_write fs/read_write.c:491 [inline]
 vfs_write+0x474/0x9a0 fs/read_write.c:584
 ksys_write+0x151/0x260 fs/read_write.c:637
 do_syscall_x64 arch/x86/entry/common.c:46 [inline]
 do_syscall_64+0x55/0xb0 arch/x86/entry/common.c:76
 entry_SYSCALL_64_after_hwframe+0x68/0xd2

The buggy address belongs to the object at ffff88807761c3c0
 which belongs to the cache skbuff_head_cache of size 240
The buggy address is located 208 bytes inside of
 freed 240-byte region [ffff88807761c3c0, ffff88807761c4b0)

The buggy address belongs to the physical page:
page:ffffea0001dd8700 refcount:1 mapcount:0 mapping:0000000000000000 index:0x0 pfn:0x7761c
flags: 0xfff00000000800(slab|node=0|zone=1|lastcpupid=0x7ff)
page_type: 0xffffffff()
raw: 00fff00000000800 ffff888140034500 ffffea0000978c40 dead000000000002
raw: 0000000000000000 00000000800c000c 00000001ffffffff 0000000000000000
page dumped because: kasan: bad access detected
page_owner tracks the page as allocated
page last allocated via order 0, migratetype Unmovable, gfp_mask 0x112820(GFP_ATOMIC|__GFP_NOWARN|__GFP_NORETRY|__GFP_HARDWALL), pid 2986, tgid 2986 (kworker/u4:10), ts 89324578719, free_ts 89270982691
 set_page_owner include/linux/page_owner.h:31 [inline]
 post_alloc_hook+0x1c1/0x200 mm/page_alloc.c:1582
 prep_new_page mm/page_alloc.c:1589 [inline]
 get_page_from_freelist+0x2181/0x22a0 mm/page_alloc.c:3221
 __alloc_pages+0x1f0/0x460 mm/page_alloc.c:4501
 alloc_slab_page+0x5d/0x180 mm/slub.c:1903
 allocate_slab mm/slub.c:2050 [inline]
 new_slab+0x87/0x2d0 mm/slub.c:2103
 ___slab_alloc+0xc5c/0x12f0 mm/slub.c:3275
 __slab_alloc mm/slub.c:3361 [inline]
 __slab_alloc_node mm/slub.c:3414 [inline]
 slab_alloc_node mm/slub.c:3508 [inline]
 kmem_cache_alloc_node+0x12e/0x320 mm/slub.c:3563
 __alloc_skb+0x103/0x2c0 net/core/skbuff.c:643
 alloc_skb include/linux/skbuff.h:1316 [inline]
 nsim_dev_trap_skb_build drivers/net/netdevsim/dev.c:748 [inline]
 nsim_dev_trap_report drivers/net/netdevsim/dev.c:805 [inline]
 nsim_dev_trap_report_work+0x253/0xa90 drivers/net/netdevsim/dev.c:851
 process_one_work kernel/workqueue.c:2657 [inline]
 process_scheduled_works+0xa60/0x1600 kernel/workqueue.c:2734
 worker_thread+0xa5e/0xfe0 kernel/workqueue.c:2815
 kthread+0x2fa/0x390 kernel/kthread.c:388
 ret_from_fork+0x48/0x80 arch/x86/kernel/process.c:152
 ret_from_fork_asm+0x11/0x20 arch/x86/entry/entry_64.S:293
page last free stack trace:
 reset_page_owner include/linux/page_owner.h:24 [inline]
 free_pages_prepare mm/page_alloc.c:1182 [inline]
 free_unref_page_prepare+0x7d7/0x8f0 mm/page_alloc.c:2366
 free_unref_page+0x32/0x2e0 mm/page_alloc.c:2459
 discard_slab mm/slub.c:2149 [inline]
 __unfreeze_partials+0x1cf/0x210 mm/slub.c:2689
 put_cpu_partial+0x17c/0x250 mm/slub.c:2765
 __slab_free+0x319/0x400 mm/slub.c:3723
 qlink_free mm/kasan/quarantine.c:166 [inline]
 qlist_free_all+0x75/0xd0 mm/kasan/quarantine.c:185
 kasan_quarantine_reduce+0x143/0x160 mm/kasan/quarantine.c:292
 __kasan_slab_alloc+0x22/0x80 mm/kasan/common.c:306
 kasan_slab_alloc include/linux/kasan.h:188 [inline]
 slab_post_alloc_hook+0x6a/0x4d0 mm/slab.h:770
 slab_alloc_node mm/slub.c:3518 [inline]
 __kmem_cache_alloc_node+0x197/0x260 mm/slub.c:3557
 __do_kmalloc_node mm/slab_common.c:1006 [inline]
 __kmalloc_node+0xa6/0x240 mm/slab_common.c:1014
 kmalloc_node include/linux/slab.h:620 [inline]
 kvmalloc_node+0x70/0x180 mm/util.c:634
 kvmalloc include/linux/slab.h:738 [inline]
 kvzalloc include/linux/slab.h:746 [inline]
 allocate_hook_entries_size net/netfilter/core.c:61 [inline]
 __nf_hook_entries_try_shrink+0x336/0x700 net/netfilter/core.c:260
 __nf_unregister_net_hook+0x4da/0x6d0 net/netfilter/core.c:520
 nf_unregister_net_hook net/netfilter/core.c:-1 [inline]
 nf_unregister_net_hooks+0xcb/0x130 net/netfilter/core.c:613
 ops_pre_exit_list net/core/net_namespace.c:163 [inline]
 cleanup_net+0x581/0xb00 net/core/net_namespace.c:636

Memory state around the buggy address:
 ffff88807761c380: fc fc fc fc fc fc fc fc fa fb fb fb fb fb fb fb
 ffff88807761c400: fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb
>ffff88807761c480: fb fb fb fb fb fb fc fc fc fc fc fc fc fc fc fc
                         ^
 ffff88807761c500: fa fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb
 ffff88807761c580: fb fb fb fb fb fb fb fb fb fb fb fb fb fb fc fc
==================================================================

Crashes (11):
Time Kernel Commit Syzkaller Config Log Report Syz repro C repro VM info Assets (help?) Manager Title
2026/11/13 13:29 linux-6.6.y 5139929c698c be5d1971 .config console log report info [disk image] [vmlinux] [kernel image] ci2-linux-6-6-kasan KASAN: slab-use-after-free Read in nf_nat_ipv6_in
2026/11/13 13:28 linux-6.6.y 5139929c698c be5d1971 .config console log report info [disk image] [vmlinux] [kernel image] ci2-linux-6-6-kasan KASAN: slab-use-after-free Read in nf_nat_ipv6_in
2026/11/13 10:59 linux-6.6.y 5139929c698c 26b2fee0 .config console log report info [disk image] [vmlinux] [kernel image] ci2-linux-6-6-kasan KASAN: slab-use-after-free Read in nf_nat_ipv6_in
2026/11/13 10:59 linux-6.6.y 5139929c698c 26b2fee0 .config console log report info [disk image] [vmlinux] [kernel image] ci2-linux-6-6-kasan KASAN: slab-use-after-free Read in nf_nat_ipv6_in
2026/11/12 04:48 linux-6.6.y 5139929c698c 8d68b303 .config console log report info [disk image] [vmlinux] [kernel image] ci2-linux-6-6-kasan KASAN: slab-use-after-free Read in nf_nat_ipv6_in
2026/10/29 22:36 linux-6.6.y 0aebf2870d53 b498adee .config console log report info [disk image] [vmlinux] [kernel image] ci2-linux-6-6-kasan KASAN: slab-use-after-free Read in nf_nat_ipv6_in
2026/10/29 22:34 linux-6.6.y 0aebf2870d53 b498adee .config console log report info [disk image] [vmlinux] [kernel image] ci2-linux-6-6-kasan KASAN: slab-use-after-free Read in nf_nat_ipv6_in
2026/10/26 07:54 linux-6.6.y 0aebf2870d53 1d9ca40b .config console log report info [disk image] [vmlinux] [kernel image] ci2-linux-6-6-kasan KASAN: slab-use-after-free Read in nf_nat_ipv6_in
2026/10/22 15:21 linux-6.6.y 0aebf2870d53 b55fad29 .config console log report info [disk image] [vmlinux] [kernel image] ci2-linux-6-6-kasan KASAN: slab-use-after-free Read in nf_nat_ipv6_in
2026/10/22 15:20 linux-6.6.y 0aebf2870d53 b55fad29 .config console log report info [disk image] [vmlinux] [kernel image] ci2-linux-6-6-kasan KASAN: slab-use-after-free Read in nf_nat_ipv6_in
2026/10/22 01:37 linux-6.6.y 0aebf2870d53 4ba27f85 .config console log report info [disk image] [vmlinux] [kernel image] ci2-linux-6-6-kasan KASAN: slab-use-after-free Read in nf_nat_ipv6_in
* Struck through repros no longer work on HEAD.