syzbot


KASAN: use-after-free Read in xfrm_hash_rebuild

Status: auto-closed as invalid on 2019/02/22 15:23
First crash: 2153d, last: 2153d

Sample crash report:
==================================================================
BUG: KASAN: use-after-free in xfrm_hash_rebuild+0x8cf/0xae0 net/xfrm/xfrm_policy.c:634
Read of size 4 at addr ffff8800bae9903c by task kworker/1:2/1761

CPU: 1 PID: 1761 Comm: kworker/1:2 Not tainted 4.4.132-gc3c51ea #47
Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 01/01/2011
Workqueue: events xfrm_hash_rebuild
 0000000000000000 61867c4c653e9a28 ffff8800b6f97b18 ffffffff81e0df8d
 ffffea0002eba640 ffff8800bae9903c 0000000000000000 ffff8800bae9903c
 ffff8800ba8eef28 ffff8800b6f97b50 ffffffff8151526c ffff8800bae9903c
Call Trace:
 [<ffffffff81e0df8d>] __dump_stack lib/dump_stack.c:15 [inline]
 [<ffffffff81e0df8d>] dump_stack+0xc1/0x124 lib/dump_stack.c:51
 [<ffffffff8151526c>] print_address_description+0x6c/0x216 mm/kasan/report.c:252
 [<ffffffff8151558b>] kasan_report_error mm/kasan/report.c:351 [inline]
 [<ffffffff8151558b>] kasan_report.cold.7+0x175/0x2f7 mm/kasan/report.c:408
 [<ffffffff814f9064>] __asan_report_load4_noabort+0x14/0x20 mm/kasan/report.c:428
 [<ffffffff833c5a2f>] xfrm_hash_rebuild+0x8cf/0xae0 net/xfrm/xfrm_policy.c:634
 [<ffffffff81181d5f>] process_one_work+0x7df/0x1600 kernel/workqueue.c:2064
 [<ffffffff81182c59>] worker_thread+0xd9/0xfc0 kernel/workqueue.c:2196
 [<ffffffff81190768>] kthread+0x268/0x300 kernel/kthread.c:211
 [<ffffffff838c0655>] ret_from_fork+0x55/0x80 arch/x86/entry/entry_64.S:510

Allocated by task 5852:
 [<ffffffff810341d6>] save_stack_trace+0x26/0x50 arch/x86/kernel/stacktrace.c:63
 [<ffffffff814f8133>] save_stack+0x43/0xd0 mm/kasan/kasan.c:512
 [<ffffffff814f8417>] set_track mm/kasan/kasan.c:524 [inline]
 [<ffffffff814f8417>] kasan_kmalloc+0xc7/0xe0 mm/kasan/kasan.c:616
 [<ffffffff814f89e2>] kasan_slab_alloc+0x12/0x20 mm/kasan/kasan.c:554
 [<ffffffff814f44de>] slab_post_alloc_hook mm/slub.c:1349 [inline]
 [<ffffffff814f44de>] slab_alloc_node mm/slub.c:2615 [inline]
 [<ffffffff814f44de>] slab_alloc mm/slub.c:2623 [inline]
 [<ffffffff814f44de>] kmem_cache_alloc+0xbe/0x2a0 mm/slub.c:2628
 [<ffffffff81c527c7>] kmem_cache_zalloc include/linux/slab.h:610 [inline]
 [<ffffffff81c527c7>] avc_alloc_node+0x27/0x3d0 security/selinux/avc.c:553
 [<ffffffff81c53678>] avc_insert security/selinux/avc.c:672 [inline]
 [<ffffffff81c53678>] avc_compute_av+0x178/0x610 security/selinux/avc.c:978
 [<ffffffff81c5571e>] avc_has_perm_noaudit security/selinux/avc.c:1114 [inline]
 [<ffffffff81c5571e>] avc_has_perm+0x36e/0x4f0 security/selinux/avc.c:1148
 [<ffffffff81c59d71>] may_create+0x2f1/0x3a0 security/selinux/hooks.c:1759
 [<ffffffff81c59f32>] selinux_inode_create+0x22/0x30 security/selinux/hooks.c:2789
 [<ffffffff81c47daa>] security_inode_create+0xca/0x110 security/security.c:513
 [<ffffffff8153ff37>] vfs_create2+0x197/0x3d0 fs/namei.c:2691
 [<ffffffff8154c3b4>] lookup_open fs/namei.c:3030 [inline]
 [<ffffffff8154c3b4>] do_last fs/namei.c:3115 [inline]
 [<ffffffff8154c3b4>] path_openat+0xed4/0x3a10 fs/namei.c:3359
 [<ffffffff81551c07>] do_filp_open+0x197/0x270 fs/namei.c:3393
 [<ffffffff8151b2cc>] do_sys_open+0x31c/0x610 fs/open.c:1038
 [<ffffffff8151b5ed>] SYSC_open fs/open.c:1056 [inline]
 [<ffffffff8151b5ed>] SyS_open+0x2d/0x40 fs/open.c:1051
 [<ffffffff838c0225>] entry_SYSCALL_64_fastpath+0x22/0x9e

Freed by task 14:
 [<ffffffff810341d6>] save_stack_trace+0x26/0x50 arch/x86/kernel/stacktrace.c:63
 [<ffffffff814f8133>] save_stack+0x43/0xd0 mm/kasan/kasan.c:512
 [<ffffffff814f8a62>] set_track mm/kasan/kasan.c:524 [inline]
 [<ffffffff814f8a62>] kasan_slab_free+0x72/0xc0 mm/kasan/kasan.c:589
 [<ffffffff814f5bee>] slab_free_hook mm/slub.c:1383 [inline]
 [<ffffffff814f5bee>] slab_free_freelist_hook mm/slub.c:1405 [inline]
 [<ffffffff814f5bee>] slab_free mm/slub.c:2859 [inline]
 [<ffffffff814f5bee>] kmem_cache_free+0xbe/0x340 mm/slub.c:2881
 [<ffffffff81c51ef8>] avc_node_free+0x48/0x60 security/selinux/avc.c:489
 [<ffffffff81285ad7>] __rcu_reclaim kernel/rcu/rcu.h:118 [inline]
 [<ffffffff81285ad7>] rcu_do_batch kernel/rcu/tree.c:2705 [inline]
 [<ffffffff81285ad7>] invoke_rcu_callbacks kernel/rcu/tree.c:2973 [inline]
 [<ffffffff81285ad7>] __rcu_process_callbacks kernel/rcu/tree.c:2940 [inline]
 [<ffffffff81285ad7>] rcu_process_callbacks+0x927/0x1440 kernel/rcu/tree.c:2957
 [<ffffffff838c36ec>] __do_softirq+0x22c/0xa1a kernel/softirq.c:273

The buggy address belongs to the object at ffff8800bae99000
 which belongs to the cache avc_node of size 72
The buggy address is located 60 bytes inside of
 72-byte region [ffff8800bae99000, ffff8800bae99048)
The buggy address belongs to the page:
kasan: CONFIG_KASAN_INLINE enabled
kasan: GPF could be caused by NULL-ptr deref or user memory accessgeneral protection fault: 0000 [#1] PREEMPT SMP KASAN
Dumping ftrace buffer:
  SeaBIOS (version 1.8.2-20171130_102032-google)
Initializing cgroup subsys cpuset
Initializing cgroup subsys cpu
Initializing cgroup subsys cpuacct
Initializing cgroup subsys schedtune
Linux version 4.4.132-gc3c51ea (syzkaller@ci) (gcc version 8.0.1 20180413 (experimental) (GCC) ) #47 SMP PREEMPT Wed May 23 23:30:50 UTC 2018
Command line: BOOT_IMAGE=/vmlinuz root=/dev/sda1 console=ttyS0 earlyprintk=serial vsyscall=native rodata=n ftrace_dump_on_oops=orig_cpu oops=panic panic_on_warn=1 nmi_watchdog=panic panic=86400 nopti
KERNEL supported cpus:
  Intel GenuineIntel
  AMD AuthenticAMD
  Centaur CentaurHauls
x86/fpu: xstate_offset[2]:  576, xstate_sizes[2]:  256
x86/fpu: Supporting XSAVE feature 0x01: 'x87 floating point registers'
x86/fpu: Supporting XSAVE feature 0x02: 'SSE registers'
x86/fpu: Supporting XSAVE feature 0x04: 'AVX registers'
x86/fpu: Enabled xstate features 0x7, context size is 832 bytes, using 'standard' format.
x86/fpu: Using 'eager' FPU context switches.
e820: BIOS-provided physical RAM map:
BIOS-e820: [mem 0x0000000000000000-0x000000000009fbff] usable
BIOS-e820: [mem 0x000000000009fc00-0x000000000009ffff] reserved
BIOS-e820: [mem 0x00000000000f0000-0x00000000000fffff] reserved
BIOS-e820: [mem 0x0000000000100000-0x00000000bfff2fff] usable
BIOS-e820: [mem 0x00000000bfff3000-0x00000000bfffffff] reserved
BIOS-e820: [mem 0x00000000fffbc000-0x00000000ffffffff] reserved
BIOS-e820: [mem 0x0000000100000000-0x000000021fffffff] usable
bootconsole [earlyser0] enabled
NX (Execute Disable) protection: active
SMBIOS 2.4 present.
Hypervisor detected: KVM
Kernel/User page tables isolation: disabled
e820: last_pfn = 0x220000 max_arch_pfn = 0x400000000
x86/PAT: Configuration [0-7]: WB  WC  UC- UC  WB  WC  UC- WT  
e820: last_pfn = 0xbfff3 max_arch_pfn = 0x400000000
found SMP MP-table at [mem 0x000f23d0-0x000f23df] mapped at [ffff8800000f23d0]
Scanning 1 areas for low memory corruption
Using GB pages for direct mapping
ACPI: Early table checksum verification disabled
ACPI: RSDP 0x00000000000F2390 000014 (v00 Google)
ACPI: RSDT 0x00000000BFFF3430 000038 (v01 Google GOOGRSDT 00000001 GOOG 00000001)
ACPI: FACP 0x00000000BFFFCF60 0000F4 (v02 Google GOOGFACP 00000001 GOOG 00000001)
ACPI: DSDT 0x00000000BFFF3470 0017B2 (v01 Google GOOGDSDT 00000001 GOOG 00000001)
ACPI: FACS 0x00000000BFFFCF00 000040
ACPI: FACS 0x00000000BFFFCF00 000040
ACPI: SSDT 0x00000000BFFF65F0 00690D (v01 Google GOOGSSDT 00000001 GOOG 00000001)
ACPI: APIC 0x00000000BFFF5D10 000076 (v01 Google GOOGAPIC 00000001 GOOG 00000001)
ACPI: WAET 0x00000000BFFF5CE0 000028 (v01 Google GOOGWAET 00000001 GOOG 00000001)
ACPI: SRAT 0x00000000BFFF4C30 0000C8 (v01 Google GOOGSRAT 00000001 GOOG 00000001)
kvm-clock: Using msrs 4b564d01 and 4b564d00
kvm-clock: cpu 0, msr 2:1fffd001, primary cpu clock
kvm-clock: using sched offset of 2942908501 cycles
clocksource: kvm-clock: mask: 0xffffffffffffffff max_cycles: 0x1cd42e4dffb, max_idle_ns: 881590591483 ns
Zone ranges:
  DMA      [mem 0x0000000000001000-0x0000000000ffffff]
  DMA32    [mem 0x0000000001000000-0x00000000ffffffff]
  Normal   [mem 0x0000000100000000-0x000000021fffffff]
Movable zone start for each node
Early memory node ranges
  node   0: [mem 0x0000000000001000-0x000000000009efff]
  node   0: [mem 0x0000000000100000-0x00000000bfff2fff]
  node   0: [mem 0x0000000100000000-0x000000021fffffff]
Initmem setup node 0 [mem 0x0000000000001000-0x000000021fffffff]
kasan: KernelAddressSanitizer initialized
ACPI: PM-Timer IO Port: 0xb008
ACPI: LAPIC_NMI (acpi_id[0xff] dfl dfl lint[0x1])
IOAPIC[0]: apic_id 0, version 17, address 0xfec00000, GSI 0-23
ACPI: INT_SRC_OVR (bus 0 bus_irq 5 global_irq 5 high level)
ACPI: INT_SRC_OVR (bus 0 bus_irq 9 global_irq 9 high level)
ACPI: INT_SRC_OVR (bus 0 bus_irq 10 global_irq 10 high level)
ACPI: INT_SRC_OVR (bus 0 bus_irq 11 global_irq 11 high level)
Using ACPI (MADT) for SMP configuration information
smpboot: Allowing 2 CPUs, 0 hotplug CPUs
PM: Registered nosave memory: [mem 0x00000000-0x00000fff]
PM: Registered nosave memory: [mem 0x0009f000-0x0009ffff]
PM: Registered nosave memory: [mem 0x000a0000-0x000effff]
PM: Registered nosave memory: [mem 0x000f0000-0x000fffff]
PM: Registered nosave memory: [mem 0xbfff3000-0xbfffffff]
PM: Registered nosave memory: [mem 0xc0000000-0xfffbbfff]
PM: Registered nosave memory: [mem 0xfffbc000-0xffffffff]
e820: [mem 0xc0000000-0xfffbbfff] available for PCI devices
Booting paravirtualized kernel on KVM
clocksource: refined-jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 19112604462750000 ns
setup_percpu: NR_CPUS:64 nr_cpumask_bits:64 nr_cpu_ids:2 nr_node_ids:1
PERCPU: Embedded 42 pages/cpu @ffff8801db200000 s134024 r8192 d29816 u1048576
Built 1 zonelists in Zone order, mobility grouping on.  Total pages: 1935227
Kernel command line: BOOT_IMAGE=/vmlinuz root=/dev/sda1 console=ttyS0 earlyprintk=serial vsyscall=native rodata=n ftrace_dump_on_oops=orig_cpu oops=panic panic_on_warn=1 nmi_watchdog=panic panic=86400 nopti
PID hash table entries: 4096 (order: 3, 32768 bytes)
Dentry cache hash table entries: 1048576 (order: 11, 8388608 bytes)
Inode-cache hash table entries: 524288 (order: 10, 4194304 bytes)
Memory: 6579092K/7863876K available (41752K kernel code, 6301K rwdata, 9048K rodata, 1864K init, 23696K bss, 1284784K reserved, 0K cma-reserved)
SLUB: HWalign=64, Order=0-3, MinObjects=0, CPUs=2, Nodes=1
Running RCU self tests
Preemptible hierarchical RCU implementation.
	RCU lockdep checking is enabled.
	Build-time adjustment of leaf fanout to 64.
	RCU restricting CPUs from NR_CPUS=64 to nr_cpu_ids=2.
RCU: Adjusting geometry for rcu_fanout_leaf=64, nr_cpu_ids=2
NR_IRQS:4352 nr_irqs:440 16
console [ttyS0] enabled
console [ttyS0] enabled
bootconsole [earlyser0] disabled
bootconsole [earlyser0] disabled
Lock dependency validator: Copyright (c) 2006 Red Hat, Inc., Ingo Molnar
... MAX_LOCKDEP_SUBCLASSES:  8
... MAX_LOCK_DEPTH:          48
... MAX_LOCKDEP_KEYS:        8191
... CLASSHASH_SIZE:          4096
... MAX_LOCKDEP_ENTRIES:     32768
... MAX_LOCKDEP_CHAINS:      65536
... CHAINHASH_SIZE:          32768
 memory used by lock dependency info: 8159 kB
 per task-struct memory footprint: 1920 bytes
tsc: Detected 2300.000 MHz processor
Calibrating delay loop (skipped) preset value.. 4600.00 BogoMIPS (lpj=23000000)
pid_max: default: 32768 minimum: 301
ACPI: Core revision 20150930
ACPI: 2 ACPI AML tables successfully acquired and loaded
Security Framework initialized
SELinux:  Initializing.
AppArmor: AppArmor disabled by boot time parameter
Mount-cache hash table entries: 16384 (order: 5, 131072 bytes)
Mountpoint-cache hash table entries: 16384 (order: 5, 131072 bytes)
Initializing cgroup subsys io
Initializing cgroup subsys freezer
Initializing cgroup subsys hugetlb
Initializing cgroup subsys debug
CPU: Physical Processor ID: 0
mce: CPU supports 32 MCE banks
Last level iTLB entries: 4KB 1024, 2MB 1024, 4MB 1024
Last level dTLB entries: 4KB 1024, 2MB 1024, 4MB 1024, 1GB 4
Spectre V2 : Mitigation: Full generic retpoline
Freeing SMP alternatives memory: 48K
..TIMER: vector=0x30 apic1=0 pin1=0 apic2=-1 pin2=-1
smpboot: CPU0: Intel(R) Xeon(R) CPU @ 2.30GHz (family: 0x6, model: 0x3f, stepping: 0x0)
Performance Events: unsupported p6 CPU model 63 no PMU driver, software events only.
x86: Booting SMP configuration:
.... node  #0, CPUs:      #1
kvm-clock: cpu 1, msr 2:1fffd041, secondary cpu clock
x86: Booted up 1 node, 2 CPUs
smpboot: Total of 2 processors activated (9200.00 BogoMIPS)
devtmpfs: initialized
clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 19112604462750000 ns
futex hash table entries: 512 (order: 4, 65536 bytes)
xor: automatically using best checksumming function:
kworker/u4:0 (21) used greatest stack depth: 27920 bytes left
   avx       : 21632.400 MB/sec
RTC time: 17:42:07, date: 05/24/18
NET: Registered protocol family 16
schedtune: init normalization constants...
schedtune: no energy model data
schedtune: disabled!
cpuidle: using governor ladder
cpuidle: using governor menu
ACPI: bus type PCI registered
acpiphp: ACPI Hot Plug PCI Controller Driver version: 0.5
PCI: Using configuration type 1 for base access
kworker/u4:1 (46) used greatest stack depth: 27424 bytes left
kworker/u4:1 (247) used greatest stack depth: 27024 bytes left
raid6: sse2x1   gen()  4726 MB/s
raid6: sse2x1   xor()  2558 MB/s
raid6: sse2x2   gen()  6935 MB/s
raid6: sse2x2   xor()  3941 MB/s
raid6: sse2x4   gen()  8590 MB/s
raid6: sse2x4   xor()  5299 MB/s
raid6: avx2x1   gen()  9344 MB/s
raid6: avx2x2   gen() 14389 MB/s
raid6: avx2x4   gen() 18587 MB/s
raid6: using algorithm avx2x4 gen() 18587 MB/s
raid6: using avx2x2 recovery algorithm
ACPI: Added _OSI(Module Device)
ACPI: Added _OSI(Processor Device)
ACPI: Added _OSI(3.0 _SCP Extensions)
ACPI: Added _OSI(Processor Aggregator Device)
ACPI: Executed 2 blocks of module-level executable AML code
ACPI: Interpreter enabled
ACPI: (supports S0 S3 S4 S5)
ACPI: Using IOAPIC for interrupt routing
PCI: Using host bridge windows from ACPI; if necessary, use "pci=nocrs" and report a bug

Crashes (1):
Time Kernel Commit Syzkaller Config Log Report Syz repro C repro VM info Assets (help?) Manager Title
2018/05/24 17:42 https://android.googlesource.com/kernel/common android-4.4 c3c51ea38a92 f48c20b8 .config console log report ci-android-44-kasan-gce
* Struck through repros no longer work on HEAD.