syzbot


general protection fault in find_match (5)

Status: fixed on 2024/07/10 10:07
Subsystems: net
[Documentation on labels]
Fix commit: b86762dbe19a ipv6: prevent possible NULL dereference in rt6_probe()
First crash: 119d, last: 118d
Similar bugs (5)
Kernel Title Repro Cause bisect Fix bisect Count Last Reported Patched Status
upstream general protection fault in find_match net C done error 10 1695d 1881d 0/28 closed as invalid on 2020/04/17 19:54
upstream general protection fault in find_match (3) net 2 726d 769d 0/28 auto-obsoleted due to no activity on 2023/01/16 14:40
upstream general protection fault in find_match (4) net 1 410d 406d 0/28 auto-obsoleted due to no activity on 2023/11/20 22:29
upstream general protection fault in find_match (2) net 4 1318d 1384d 0/28 auto-closed as invalid on 2021/06/26 04:02
linux-4.19 general protection fault in find_match C error 1 1112d 1810d 0/1 upstream: reported C repro on 2019/10/23 12:46

Sample crash report:
Oops: general protection fault, probably for non-canonical address 0xdffffc00000000cb: 0000 [#1] PREEMPT SMP KASAN PTI
KASAN: null-ptr-deref in range [0x0000000000000658-0x000000000000065f]
CPU: 1 PID: 16379 Comm: syz-executor.3 Not tainted 6.10.0-rc2-syzkaller-00383-gb8481381d4e2 #0
Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 04/02/2024
RIP: 0010:rt6_probe net/ipv6/route.c:656 [inline]
RIP: 0010:find_match+0x8c4/0xf50 net/ipv6/route.c:758
Code: 14 fd f7 48 8b 85 38 ff ff ff 48 c7 45 b0 00 00 00 00 48 8d b8 5c 06 00 00 48 b8 00 00 00 00 00 fc ff df 48 89 fa 48 c1 ea 03 <0f> b6 14 02 48 89 f8 83 e0 07 83 c0 03 38 d0 7c 08 84 d2 0f 85 19
RSP: 0018:ffffc9000347eef0 EFLAGS: 00010203
RAX: dffffc0000000000 RBX: 0000000000000000 RCX: ffffc90012357000
RDX: 00000000000000cb RSI: ffffffff8990d0cd RDI: 000000000000065c
RBP: ffffc9000347efd0 R08: 0000000000000005 R09: 0000000000000000
R10: 0000000000000001 R11: 0000000000000003 R12: 000000000000000a
R13: 1ffff9200068fde8 R14: ffff888061ee4a20 R15: 0000000000000000
FS:  00007f271360a6c0(0000) GS:ffff8880b9300000(0000) knlGS:0000000000000000
CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
CR2: 00007f2713609c98 CR3: 0000000069902000 CR4: 00000000003506f0
DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400
Call Trace:
 <TASK>
 rt6_nh_find_match+0xfa/0x1a0 net/ipv6/route.c:784
 nexthop_for_each_fib6_nh+0x26d/0x4a0 net/ipv4/nexthop.c:1496
 __find_rr_leaf+0x6e7/0xe00 net/ipv6/route.c:825
 find_rr_leaf net/ipv6/route.c:853 [inline]
 rt6_select net/ipv6/route.c:897 [inline]
 fib6_table_lookup+0x57e/0xa30 net/ipv6/route.c:2195
 ip6_pol_route+0x1cd/0x1150 net/ipv6/route.c:2231
 pol_lookup_func include/net/ip6_fib.h:616 [inline]
 fib6_rule_lookup+0x386/0x720 net/ipv6/fib6_rules.c:121
 ip6_route_output_flags_noref net/ipv6/route.c:2639 [inline]
 ip6_route_output_flags+0x1d0/0x640 net/ipv6/route.c:2651
 ip6_route_output include/net/ip6_route.h:93 [inline]
 ip6_dst_lookup_tail.constprop.0+0x573/0x1760 net/ipv6/ip6_output.c:1120
 ip6_dst_lookup_flow+0x99/0x1d0 net/ipv6/ip6_output.c:1250
 sctp_v6_get_dst+0x6a3/0x2050 net/sctp/ipv6.c:326
 sctp_transport_route+0x12e/0x350 net/sctp/transport.c:455
 sctp_assoc_add_peer+0x743/0x1530 net/sctp/associola.c:662
 sctp_connect_new_asoc+0x209/0x790 net/sctp/socket.c:1099
 sctp_sendmsg_new_asoc net/sctp/socket.c:1693 [inline]
 sctp_sendmsg+0x1610/0x1eb0 net/sctp/socket.c:2004
 inet_sendmsg+0x119/0x140 net/ipv4/af_inet.c:853
 sock_sendmsg_nosec net/socket.c:730 [inline]
 __sock_sendmsg net/socket.c:745 [inline]
 __sys_sendto+0x42c/0x4e0 net/socket.c:2192
 __do_sys_sendto net/socket.c:2204 [inline]
 __se_sys_sendto net/socket.c:2200 [inline]
 __x64_sys_sendto+0xe0/0x1c0 net/socket.c:2200
 do_syscall_x64 arch/x86/entry/common.c:52 [inline]
 do_syscall_64+0xcd/0x250 arch/x86/entry/common.c:83
 entry_SYSCALL_64_after_hwframe+0x77/0x7f
RIP: 0033:0x7f271287cf69
Code: 28 00 00 00 75 05 48 83 c4 28 c3 e8 e1 20 00 00 90 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 b0 ff ff ff f7 d8 64 89 01 48
RSP: 002b:00007f271360a0c8 EFLAGS: 00000246 ORIG_RAX: 000000000000002c
RAX: ffffffffffffffda RBX: 00007f27129b4050 RCX: 00007f271287cf69
RDX: 0000000000000001 RSI: 0000000020000140 RDI: 0000000000000007
RBP: 00007f27128da6fe R08: 0000000020000280 R09: 000000000000001c
R10: 0000000000000000 R11: 0000000000000246 R12: 0000000000000000
R13: 000000000000006e R14: 00007f27129b4050 R15: 00007ffebfade418
 </TASK>
Modules linked in:
---[ end trace 0000000000000000 ]---
RIP: 0010:rt6_probe net/ipv6/route.c:656 [inline]
RIP: 0010:find_match+0x8c4/0xf50 net/ipv6/route.c:758
Code: 14 fd f7 48 8b 85 38 ff ff ff 48 c7 45 b0 00 00 00 00 48 8d b8 5c 06 00 00 48 b8 00 00 00 00 00 fc ff df 48 89 fa 48 c1 ea 03 <0f> b6 14 02 48 89 f8 83 e0 07 83 c0 03 38 d0 7c 08 84 d2 0f 85 19
RSP: 0018:ffffc9000347eef0 EFLAGS: 00010203
RAX: dffffc0000000000 RBX: 0000000000000000 RCX: ffffc90012357000
RDX: 00000000000000cb RSI: ffffffff8990d0cd RDI: 000000000000065c
RBP: ffffc9000347efd0 R08: 0000000000000005 R09: 0000000000000000
R10: 0000000000000001 R11: 0000000000000003 R12: 000000000000000a
R13: 1ffff9200068fde8 R14: ffff888061ee4a20 R15: 0000000000000000
FS:  00007f271360a6c0(0000) GS:ffff8880b9200000(0000) knlGS:0000000000000000
CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
CR2: 0000000020156000 CR3: 0000000069902000 CR4: 00000000003506f0
DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400
----------------
Code disassembly (best guess):
   0:	14 fd                	adc    $0xfd,%al
   2:	f7 48 8b 85 38 ff ff 	testl  $0xffff3885,-0x75(%rax)
   9:	ff 48 c7             	decl   -0x39(%rax)
   c:	45 b0 00             	rex.RB mov $0x0,%r8b
   f:	00 00                	add    %al,(%rax)
  11:	00 48 8d             	add    %cl,-0x73(%rax)
  14:	b8 5c 06 00 00       	mov    $0x65c,%eax
  19:	48 b8 00 00 00 00 00 	movabs $0xdffffc0000000000,%rax
  20:	fc ff df
  23:	48 89 fa             	mov    %rdi,%rdx
  26:	48 c1 ea 03          	shr    $0x3,%rdx
* 2a:	0f b6 14 02          	movzbl (%rdx,%rax,1),%edx <-- trapping instruction
  2e:	48 89 f8             	mov    %rdi,%rax
  31:	83 e0 07             	and    $0x7,%eax
  34:	83 c0 03             	add    $0x3,%eax
  37:	38 d0                	cmp    %dl,%al
  39:	7c 08                	jl     0x43
  3b:	84 d2                	test   %dl,%dl
  3d:	0f                   	.byte 0xf
  3e:	85 19                	test   %ebx,(%rcx)

Crashes (2):
Time Kernel Commit Syzkaller Config Log Report Syz repro C repro VM info Assets (help?) Manager Title
2024/06/10 05:14 upstream b8481381d4e2 82c05ab8 .config console log report info [disk image] [vmlinux] [kernel image] ci-upstream-kasan-gce-selinux-root general protection fault in find_match
2024/06/09 20:00 upstream b8481381d4e2 82c05ab8 .config console log report info [disk image] [vmlinux] [kernel image] ci-upstream-kasan-gce-selinux-root general protection fault in find_match
* Struck through repros no longer work on HEAD.