KASAN: use-after-free Read in nf_nat_ipv6_in

Status: upstream: reported C repro on 2026/11/02 12:08
Reported-by: syzbot+460fbe2153595dfd8fe6@syzkaller.appspotmail.com
First crash: 11d, last: 1h47m
▶ ▼ Similar bugs (1)
Kernel Title Rank 🛈 Repro Cause bisect Fix bisect Count Last Reported Patched Status
linux-6.6 KASAN: slab-use-after-free Read in nf_nat_ipv6_in 19 11 4h35m 22d 0/2 upstream: reported on 2026/10/22 01:38

Sample crash report:
==================================================================
BUG: KASAN: use-after-free in skb_network_header include/linux/skbuff.h:2925 [inline]
BUG: KASAN: use-after-free in ipv6_hdr include/linux/ipv6.h:101 [inline]
BUG: KASAN: use-after-free in nf_nat_ipv6_in+0x11c/0x26c net/netfilter/nf_nat_proto.c:949
Read of size 8 at addr ffff0000ce445350 by task syz.0.17/4502

CPU: 1 PID: 4502 Comm: syz.0.17 Not tainted syzkaller #0
Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 09/23/2026
Call trace:
 dump_backtrace+0x1c4/0x1f0 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
 skb_network_header include/linux/skbuff.h:2925 [inline]
 ipv6_hdr include/linux/ipv6.h:101 [inline]
 nf_nat_ipv6_in+0x11c/0x26c net/netfilter/nf_nat_proto.c:949
 nf_hook_entry_hookfn include/linux/netfilter.h:154 [inline]
 nf_hook_slow+0xc8/0x22c net/netfilter/core.c:614
 nf_hook include/linux/netfilter.h:269 [inline]
 NF_HOOK+0x1d0/0x36c include/linux/netfilter.h:312
 ipv6_rcv+0x9c/0xbc net/ipv6/ip6_input.c:310
 __netif_receive_skb_one_core net/core/dev.c:5638 [inline]
 __netif_receive_skb+0xd0/0x2b0 net/core/dev.c:5752
 netif_receive_skb_internal net/core/dev.c:5838 [inline]
 netif_receive_skb+0x1e8/0x928 net/core/dev.c:5897
 tun_rx_batched+0x4ac/0x600 drivers/net/tun.c:-1
 tun_get_user+0x1f70/0x3268 drivers/net/tun.c:2009
 tun_chr_write_iter+0xfc/0x200 drivers/net/tun.c:2055
 call_write_iter include/linux/fs.h:2271 [inline]
 new_sync_write fs/read_write.c:491 [inline]
 vfs_write+0x3c8/0x7c8 fs/read_write.c:584
 ksys_write+0x12c/0x228 fs/read_write.c:637
 __do_sys_write fs/read_write.c:649 [inline]
 __se_sys_write fs/read_write.c:646 [inline]
 __arm64_sys_write+0x7c/0x90 fs/read_write.c:646
 __invoke_syscall arch/arm64/kernel/syscall.c:38 [inline]
 invoke_syscall+0x98/0x290 arch/arm64/kernel/syscall.c:52
 el0_svc_common+0x13c/0x258 arch/arm64/kernel/syscall.c:140
 do_el0_svc+0x5c/0x134 arch/arm64/kernel/syscall.c:204
 el0_svc+0x58/0x12c arch/arm64/kernel/entry-common.c:637
 el0t_64_sync_handler+0x84/0xf0 arch/arm64/kernel/entry-common.c:655
 el0t_64_sync+0x18c/0x190 arch/arm64/kernel/entry.S:589

Allocated by task 4502:
 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_slab_alloc+0x70/0x88 mm/kasan/common.c:329
 kasan_slab_alloc include/linux/kasan.h:201 [inline]
 slab_post_alloc_hook+0x74/0x430 mm/slab.h:742
 slab_alloc_node mm/slub.c:3366 [inline]
 slab_alloc mm/slub.c:3374 [inline]
 __kmem_cache_alloc_lru mm/slub.c:3381 [inline]
 kmem_cache_alloc+0x234/0x310 mm/slub.c:3390
 __build_skb+0x34/0x334 net/core/skbuff.c:322
 build_skb+0x30/0x198 net/core/skbuff.c:339
 __tun_build_skb+0x44/0x23c drivers/net/tun.c:1608
 tun_build_skb drivers/net/tun.c:1699 [inline]
 tun_get_user+0x168c/0x3268 drivers/net/tun.c:1823
 tun_chr_write_iter+0xfc/0x200 drivers/net/tun.c:2055
 call_write_iter include/linux/fs.h:2271 [inline]
 new_sync_write fs/read_write.c:491 [inline]
 vfs_write+0x3c8/0x7c8 fs/read_write.c:584
 ksys_write+0x12c/0x228 fs/read_write.c:637
 __do_sys_write fs/read_write.c:649 [inline]
 __se_sys_write fs/read_write.c:646 [inline]
 __arm64_sys_write+0x7c/0x90 fs/read_write.c:646
 __invoke_syscall arch/arm64/kernel/syscall.c:38 [inline]
 invoke_syscall+0x98/0x290 arch/arm64/kernel/syscall.c:52
 el0_svc_common+0x13c/0x258 arch/arm64/kernel/syscall.c:140
 do_el0_svc+0x5c/0x134 arch/arm64/kernel/syscall.c:204
 el0_svc+0x58/0x12c arch/arm64/kernel/entry-common.c:637
 el0t_64_sync_handler+0x84/0xf0 arch/arm64/kernel/entry-common.c:655
 el0t_64_sync+0x18c/0x190 arch/arm64/kernel/entry.S:589

Freed by task 4502:
 kasan_save_stack mm/kasan/common.c:46 [inline]
 kasan_set_track+0x4c/0x80 mm/kasan/common.c:53
 kasan_save_free_info+0x38/0x5c mm/kasan/generic.c:516
 ____kasan_slab_free+0x148/0x1b0 mm/kasan/common.c:237
 __kasan_slab_free+0x18/0x28 mm/kasan/common.c:245
 kasan_slab_free include/linux/kasan.h:177 [inline]
 slab_free_hook mm/slub.c:1735 [inline]
 slab_free_freelist_hook+0x16c/0x1e8 mm/slub.c:1761
 slab_free mm/slub.c:3694 [inline]
 kmem_cache_free+0x118/0x318 mm/slub.c:3716
 kfree_skbmem+0x10c/0x198 net/core/skbuff.c:-1
 __kfree_skb net/core/skbuff.c:871 [inline]
 kfree_skb_reason+0x1a0/0x450 net/core/skbuff.c:893
 NF_DROP_REASON include/linux/netfilter.h:29 [inline]
 nft_do_chain+0x12a0/0x1414 net/netfilter/nf_tables_core.c:-1
 nft_nat_do_chain+0x20c/0x2ec net/netfilter/nft_chain_nat.c:32
 nf_nat_inet_fn+0x5c4/0xa14 net/netfilter/nf_nat_core.c:752
 nf_nat_ipv6_fn+0x1e4/0x290 net/netfilter/nf_nat_proto.c:937
 nf_nat_ipv6_in+0xdc/0x26c net/netfilter/nf_nat_proto.c:947
 nf_hook_entry_hookfn include/linux/netfilter.h:154 [inline]
 nf_hook_slow+0xc8/0x22c net/netfilter/core.c:614
 nf_hook include/linux/netfilter.h:269 [inline]
 NF_HOOK+0x1d0/0x36c include/linux/netfilter.h:312
 ipv6_rcv+0x9c/0xbc net/ipv6/ip6_input.c:310
 __netif_receive_skb_one_core net/core/dev.c:5638 [inline]
 __netif_receive_skb+0xd0/0x2b0 net/core/dev.c:5752
 netif_receive_skb_internal net/core/dev.c:5838 [inline]
 netif_receive_skb+0x1e8/0x928 net/core/dev.c:5897
 tun_rx_batched+0x4ac/0x600 drivers/net/tun.c:-1
 tun_get_user+0x1f70/0x3268 drivers/net/tun.c:2009
 tun_chr_write_iter+0xfc/0x200 drivers/net/tun.c:2055
 call_write_iter include/linux/fs.h:2271 [inline]
 new_sync_write fs/read_write.c:491 [inline]
 vfs_write+0x3c8/0x7c8 fs/read_write.c:584
 ksys_write+0x12c/0x228 fs/read_write.c:637
 __do_sys_write fs/read_write.c:649 [inline]
 __se_sys_write fs/read_write.c:646 [inline]
 __arm64_sys_write+0x7c/0x90 fs/read_write.c:646
 __invoke_syscall arch/arm64/kernel/syscall.c:38 [inline]
 invoke_syscall+0x98/0x290 arch/arm64/kernel/syscall.c:52
 el0_svc_common+0x13c/0x258 arch/arm64/kernel/syscall.c:140
 do_el0_svc+0x5c/0x134 arch/arm64/kernel/syscall.c:204
 el0_svc+0x58/0x12c arch/arm64/kernel/entry-common.c:637
 el0t_64_sync_handler+0x84/0xf0 arch/arm64/kernel/entry-common.c:655
 el0t_64_sync+0x18c/0x190 arch/arm64/kernel/entry.S:589

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

The buggy address belongs to the physical page:
page:0000000089e6044b refcount:1 mapcount:0 mapping:0000000000000000 index:0x0 pfn:0x10e445
flags: 0x5ffc00000000200(slab|node=0|zone=2|lastcpupid=0x7ff)
raw: 05ffc00000000200 fffffc00032a9900 dead000000000004 ffff0000c0bc8180
raw: 0000000000000000 00000000800c000c 00000001ffffffff 0000000000000000
page dumped because: kasan: bad access detected

Memory state around the buggy address:
 ffff0000ce445200: fb fb fb fb fb fb fc fc fc fc fc fc fc fc fc fc
 ffff0000ce445280: fa fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb
>ffff0000ce445300: fb fb fb fb fb fb fb fb fb fb fb fb fb fb fc fc
                                                 ^
 ffff0000ce445380: fc fc fc fc fc fc fc fc fb fb fb fb fb fb fb fb
 ffff0000ce445400: fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb
==================================================================

Crashes (9):
Time Kernel Commit Syzkaller Config Log Report Syz repro C repro VM info Assets (help?) Manager Title
2026/11/04 13:12 linux-6.1.y 08889840163e 5af5b6c6 .config console log report syz / log C [disk image] [vmlinux] [kernel image] ci2-linux-6-1-kasan-arm64 KASAN: use-after-free Read in nf_nat_ipv6_in
2026/11/13 16:17 linux-6.1.y c75b0cf0982c be5d1971 .config console log report info [disk image] [vmlinux] [kernel image] ci2-linux-6-1-kasan KASAN: use-after-free Read in nf_nat_ipv6_in
2026/11/07 14:15 linux-6.1.y c75b0cf0982c 5cecaf1f .config console log report info [disk image] [vmlinux] [kernel image] ci2-linux-6-1-kasan KASAN: use-after-free Read in nf_nat_ipv6_in
2026/11/10 08:26 linux-6.1.y c75b0cf0982c 70ec0380 .config console log report info [disk image] [vmlinux] [kernel image] ci2-linux-6-1-kasan-arm64 KASAN: use-after-free Read in nf_nat_ipv6_in
2026/11/05 13:16 linux-6.1.y 08889840163e 2ee8459f .config console log report info [disk image] [vmlinux] [kernel image] ci2-linux-6-1-kasan-arm64 KASAN: use-after-free Read in nf_nat_ipv6_in
2026/11/04 03:59 linux-6.1.y 08889840163e 5af5b6c6 .config console log report info [disk image] [vmlinux] [kernel image] ci2-linux-6-1-kasan-arm64 KASAN: use-after-free Read in nf_nat_ipv6_in
2026/11/03 04:08 linux-6.1.y 08889840163e 6969b601 .config console log report info [disk image] [vmlinux] [kernel image] ci2-linux-6-1-kasan-arm64 KASAN: use-after-free Read in nf_nat_ipv6_in
2026/11/02 19:08 linux-6.1.y 08889840163e 6969b601 .config console log report info [disk image] [vmlinux] [kernel image] ci2-linux-6-1-kasan-arm64 KASAN: use-after-free Read in nf_nat_ipv6_in
2026/11/02 12:07 linux-6.1.y 08889840163e 6969b601 .config console log report info [disk image] [vmlinux] [kernel image] ci2-linux-6-1-kasan-arm64 KASAN: use-after-free Read in nf_nat_ipv6_in
* Struck through repros no longer work on HEAD.