KASAN Stack Out-of-Bounds Detection
Test Module Source
This C code, intentionally introduces Array Out of Bounds writing at Line 9
1#include <linux/module.h>
2#include <linux/kernel.h>
3#include <linux/sched.h>
4
5static void trigger_stack_overflow(void)
6{
7 char stack_array[8];
8
9 stack_array[9] = 'X';
10}
11
12static int __init kasan_stack_test_init(void)
13{
14 pr_info("KASAN Stack Test Module Loaded\n");
15
16 trigger_stack_overflow();
17
18 return 0;
19}
20
21static void __exit kasan_stack_test_exit(void)
22{
23 pr_info("KASAN Stack Test Module Unloaded\n");
24}
25
26module_init(kasan_stack_test_init);
27module_exit(kasan_stack_test_exit);
28
29MODULE_LICENSE("GPL");
30MODULE_AUTHOR("Gemini");
Build Configuration
The following Makefile automates the build process using the standard Linux Kbuild system.
1# Name of the object file (must match your .c filename)
2obj-m += kasan_stack_test.o
3
4# This is the magic variable that tells Kbuild to instrument this module
5# KASAN_SANITIZE_kasan_stack_test.o := y
6
7# Disable optimizations to prevent the compiler from hiding the bug
8#ccflags-y += -O0 -fno-stack-protector
9#ccflags-y += -fno-stack-protector
10ccflags-y += -O0
11
12# Path to the kernel build directory
13KDIR := /lib/modules/$(shell uname -r)/build
14PWD := $(shell pwd)
15
16all:
17 $(MAKE) -C $(KDIR) M=$(PWD) modules V=1
18
19clean:
20 $(MAKE) -C $(KDIR) M=$(PWD) clean
21
22# Shortcut to load and check logs
23test: all
24 sudo dmesg -C
25 sudo insmod kasan_stack_test.ko
26 sudo dmesg
27 sudo rmmod kasan_stack_test
Execution Logs
The following three sections show the step-by-step terminal output from cleaning, building, and executing the test.
Step 1: make clean
make -C /lib/modules/6.19.9/build M=/home/test/Downloads/web-dev/c-pointers/pycon-sphinx-tutorial/crawler/docs/lkd/kasan/kasan_stack_test clean
make[1]: Entering directory '/home/test/Downloads/linux-6.19.9'
make[2]: Entering directory '/home/test/Downloads/web-dev/c-pointers/pycon-sphinx-tutorial/crawler/docs/lkd/kasan/kasan_stack_test'
CLEAN Module.symvers
make[2]: Leaving directory '/home/test/Downloads/web-dev/c-pointers/pycon-sphinx-tutorial/crawler/docs/lkd/kasan/kasan_stack_test'
make[1]: Leaving directory '/home/test/Downloads/linux-6.19.9'
Step 2: make all
make -C /lib/modules/6.19.9/build M=/home/test/Downloads/web-dev/c-pointers/pycon-sphinx-tutorial/crawler/docs/lkd/kasan/kasan_stack_test modules V=1
make[1]: Entering directory '/home/test/Downloads/linux-6.19.9'
make -C /home/test/Downloads/web-dev/c-pointers/pycon-sphinx-tutorial/crawler/docs/lkd/kasan/kasan_stack_test \
-f /home/test/Downloads/linux-6.19.9/Makefile modules
make[2]: Entering directory '/home/test/Downloads/web-dev/c-pointers/pycon-sphinx-tutorial/crawler/docs/lkd/kasan/kasan_stack_test'
make --no-print-directory -C /home/test/Downloads/web-dev/c-pointers/pycon-sphinx-tutorial/crawler/docs/lkd/kasan/kasan_stack_test \
-f /home/test/Downloads/linux-6.19.9/Makefile modules
make -f /home/test/Downloads/linux-6.19.9/scripts/Makefile.build obj=. need-builtin=1 need-modorder=1
# CC [M] kasan_stack_test.o
gcc -Wp,-MMD,./.kasan_stack_test.o.d -nostdinc -I/home/test/Downloads/linux-6.19.9/arch/x86/include -I/home/test/Downloads/linux-6.19.9/arch/x86/include/generated -I/home/test/Downloads/linux-6.19.9/include -I/home/test/Downloads/linux-6.19.9/include -I/home/test/Downloads/linux-6.19.9/arch/x86/include/uapi -I/home/test/Downloads/linux-6.19.9/arch/x86/include/generated/uapi -I/home/test/Downloads/linux-6.19.9/include/uapi -I/home/test/Downloads/linux-6.19.9/include/generated/uapi -include /home/test/Downloads/linux-6.19.9/include/linux/compiler-version.h -include /home/test/Downloads/linux-6.19.9/include/linux/kconfig.h -include /home/test/Downloads/linux-6.19.9/include/linux/compiler_types.h -D__KERNEL__ -std=gnu11 -fshort-wchar -funsigned-char -fno-common -fno-PIE -fno-strict-aliasing -mno-sse -mno-mmx -mno-sse2 -mno-3dnow -mno-avx -mno-sse4a -fcf-protection=none -m64 -falign-jumps=1 -falign-loops=1 -mno-80387 -mno-fp-ret-in-387 -mpreferred-stack-boundary=3 -mskip-rax-setup -march=x86-64 -mtune=generic -mno-red-zone -mcmodel=kernel -mstack-protector-guard-reg=gs -mstack-protector-guard-symbol=__ref_stack_chk_guard -Wno-sign-compare -fno-asynchronous-unwind-tables -mindirect-branch=thunk-extern -mindirect-branch-register -mindirect-branch-cs-prefix -mfunction-return=thunk-extern -fno-jump-tables -fpatchable-function-entry=16,16 -fno-delete-null-pointer-checks -O2 -fno-allow-store-data-races -fstack-protector-strong -fno-omit-frame-pointer -fno-optimize-sibling-calls -fno-stack-clash-protection -fzero-call-used-regs=used-gpr -pg -mrecord-mcount -mfentry -DCC_USING_FENTRY -falign-functions=16 -fms-extensions -fno-strict-overflow -fno-stack-check -fconserve-stack -fno-builtin-wcslen -Wall -Wextra -Wundef -Werror=implicit-function-declaration -Werror=implicit-int -Werror=return-type -Werror=strict-prototypes -Wno-format-security -Wno-trigraphs -Wno-frame-address -Wno-address-of-packed-member -Wmissing-declarations -Wmissing-prototypes -Wframe-larger-than=1024 -Wno-main -Wvla-larger-than=1 -Wno-pointer-sign -Wcast-function-type -Wno-array-bounds -Wno-stringop-overflow -Wno-alloc-size-larger-than -Wimplicit-fallthrough=5 -Werror=date-time -Werror=incompatible-pointer-types -Werror=designated-init -Wenum-conversion -Wunused -Wno-unused-but-set-variable -Wno-unused-const-variable -Wno-packed-not-aligned -Wno-format-overflow -Wno-format-truncation -Wno-stringop-truncation -Wno-override-init -Wno-missing-field-initializers -Wno-type-limits -Wno-shift-negative-value -Wno-maybe-uninitialized -Wno-sign-compare -Wno-unused-parameter -g -gdwarf-5 -O0 -fsanitize=kernel-address -fasan-shadow-offset=0xdffffc0000000000 --param asan-instrumentation-with-call-threshold=0 --param asan-stack=1 --param asan-instrument-allocas=1 --param asan-globals=1 -DMODULE -DKBUILD_BASENAME='"kasan_stack_test"' -DKBUILD_MODNAME='"kasan_stack_test"' -D__KBUILD_MODNAME=kasan_stack_test -c -o kasan_stack_test.o kasan_stack_test.c ; /home/test/Downloads/linux-6.19.9/tools/objtool/objtool --hacks=jump_label --hacks=noinstr --hacks=skylake --retpoline --rethunk --stackval --static-call --uaccess --prefix=16 --link --module kasan_stack_test.o
# cmd_gen_objtooldep kasan_stack_test.o
{ echo ; echo 'kasan_stack_test.o: $(wildcard /home/test/Downloads/linux-6.19.9/tools/objtool/objtool)' ; } >> ./.kasan_stack_test.o.cmd
# cmd_gen_symversions_c kasan_stack_test.o
if nm kasan_stack_test.o 2>/dev/null | grep -q ' __export_symbol_'; then gcc -E -D__GENKSYMS__ -Wp,-MMD,./.kasan_stack_test.o.d -nostdinc -I/home/test/Downloads/linux-6.19.9/arch/x86/include -I/home/test/Downloads/linux-6.19.9/arch/x86/include/generated -I/home/test/Downloads/linux-6.19.9/include -I/home/test/Downloads/linux-6.19.9/include -I/home/test/Downloads/linux-6.19.9/arch/x86/include/uapi -I/home/test/Downloads/linux-6.19.9/arch/x86/include/generated/uapi -I/home/test/Downloads/linux-6.19.9/include/uapi -I/home/test/Downloads/linux-6.19.9/include/generated/uapi -include /home/test/Downloads/linux-6.19.9/include/linux/compiler-version.h -include /home/test/Downloads/linux-6.19.9/include/linux/kconfig.h -include /home/test/Downloads/linux-6.19.9/include/linux/compiler_types.h -D__KERNEL__ -std=gnu11 -fshort-wchar -funsigned-char -fno-common -fno-PIE -fno-strict-aliasing -mno-sse -mno-mmx -mno-sse2 -mno-3dnow -mno-avx -mno-sse4a -fcf-protection=none -m64 -falign-jumps=1 -falign-loops=1 -mno-80387 -mno-fp-ret-in-387 -mpreferred-stack-boundary=3 -mskip-rax-setup -march=x86-64 -mtune=generic -mno-red-zone -mcmodel=kernel -mstack-protector-guard-reg=gs -mstack-protector-guard-symbol=__ref_stack_chk_guard -Wno-sign-compare -fno-asynchronous-unwind-tables -mindirect-branch=thunk-extern -mindirect-branch-register -mindirect-branch-cs-prefix -mfunction-return=thunk-extern -fno-jump-tables -fpatchable-function-entry=16,16 -fno-delete-null-pointer-checks -O2 -fno-allow-store-data-races -fstack-protector-strong -fno-omit-frame-pointer -fno-optimize-sibling-calls -fno-stack-clash-protection -fzero-call-used-regs=used-gpr -pg -mrecord-mcount -mfentry -DCC_USING_FENTRY -falign-functions=16 -fms-extensions -fno-strict-overflow -fno-stack-check -fconserve-stack -fno-builtin-wcslen -Wall -Wextra -Wundef -Werror=implicit-function-declaration -Werror=implicit-int -Werror=return-type -Werror=strict-prototypes -Wno-format-security -Wno-trigraphs -Wno-frame-address -Wno-address-of-packed-member -Wmissing-declarations -Wmissing-prototypes -Wframe-larger-than=1024 -Wno-main -Wvla-larger-than=1 -Wno-pointer-sign -Wcast-function-type -Wno-array-bounds -Wno-stringop-overflow -Wno-alloc-size-larger-than -Wimplicit-fallthrough=5 -Werror=date-time -Werror=incompatible-pointer-types -Werror=designated-init -Wenum-conversion -Wunused -Wno-unused-but-set-variable -Wno-unused-const-variable -Wno-packed-not-aligned -Wno-format-overflow -Wno-format-truncation -Wno-stringop-truncation -Wno-override-init -Wno-missing-field-initializers -Wno-type-limits -Wno-shift-negative-value -Wno-maybe-uninitialized -Wno-sign-compare -Wno-unused-parameter -g -gdwarf-5 -O0 -fsanitize=kernel-address -fasan-shadow-offset=0xdffffc0000000000 --param asan-instrumentation-with-call-threshold=0 --param asan-stack=1 --param asan-instrument-allocas=1 --param asan-globals=1 -DMODULE -DKBUILD_BASENAME='"kasan_stack_test"' -DKBUILD_MODNAME='"kasan_stack_test"' -D__KBUILD_MODNAME=kasan_stack_test kasan_stack_test.c | /home/test/Downloads/linux-6.19.9/scripts/genksyms/genksyms >> ./.kasan_stack_test.o.cmd; fi
# cmd_mod kasan_stack_test.mod
printf '%s
' kasan_stack_test.o | awk '!x[$0]++ { print("./"$0) }' > kasan_stack_test.mod
# cmd_gen_order modules.order
{ echo kasan_stack_test.o; :; } > modules.order
sh /home/test/Downloads/linux-6.19.9/scripts/modules-check.sh modules.order
make -f /home/test/Downloads/linux-6.19.9/scripts/Makefile.modpost
# MODPOST Module.symvers
/home/test/Downloads/linux-6.19.9/scripts/mod/modpost -M -m -b -a -o Module.symvers -T modules.order -i /home/test/Downloads/linux-6.19.9/Module.symvers -e
WARNING: modpost: missing MODULE_DESCRIPTION() in kasan_stack_test.o
make -f /home/test/Downloads/linux-6.19.9/scripts/Makefile.modfinal
# CC [M] kasan_stack_test.mod.o
gcc -Wp,-MMD,./.kasan_stack_test.mod.o.d -nostdinc -I/home/test/Downloads/linux-6.19.9/arch/x86/include -I/home/test/Downloads/linux-6.19.9/arch/x86/include/generated -I/home/test/Downloads/linux-6.19.9/include -I/home/test/Downloads/linux-6.19.9/include -I/home/test/Downloads/linux-6.19.9/arch/x86/include/uapi -I/home/test/Downloads/linux-6.19.9/arch/x86/include/generated/uapi -I/home/test/Downloads/linux-6.19.9/include/uapi -I/home/test/Downloads/linux-6.19.9/include/generated/uapi -include /home/test/Downloads/linux-6.19.9/include/linux/compiler-version.h -include /home/test/Downloads/linux-6.19.9/include/linux/kconfig.h -include /home/test/Downloads/linux-6.19.9/include/linux/compiler_types.h -D__KERNEL__ -std=gnu11 -fshort-wchar -funsigned-char -fno-common -fno-PIE -fno-strict-aliasing -mno-sse -mno-mmx -mno-sse2 -mno-3dnow -mno-avx -mno-sse4a -fcf-protection=none -m64 -falign-jumps=1 -falign-loops=1 -mno-80387 -mno-fp-ret-in-387 -mpreferred-stack-boundary=3 -mskip-rax-setup -march=x86-64 -mtune=generic -mno-red-zone -mcmodel=kernel -mstack-protector-guard-reg=gs -mstack-protector-guard-symbol=__ref_stack_chk_guard -Wno-sign-compare -fno-asynchronous-unwind-tables -mindirect-branch=thunk-extern -mindirect-branch-register -mindirect-branch-cs-prefix -mfunction-return=thunk-extern -fno-jump-tables -fpatchable-function-entry=16,16 -fno-delete-null-pointer-checks -O2 -fno-allow-store-data-races -fstack-protector-strong -fno-omit-frame-pointer -fno-optimize-sibling-calls -fno-stack-clash-protection -fzero-call-used-regs=used-gpr -pg -mrecord-mcount -mfentry -DCC_USING_FENTRY -falign-functions=16 -fms-extensions -fno-strict-overflow -fno-stack-check -fconserve-stack -fno-builtin-wcslen -Wall -Wextra -Wundef -Werror=implicit-function-declaration -Werror=implicit-int -Werror=return-type -Werror=strict-prototypes -Wno-format-security -Wno-trigraphs -Wno-frame-address -Wno-address-of-packed-member -Wmissing-declarations -Wmissing-prototypes -Wframe-larger-than=1024 -Wno-main -Wvla-larger-than=1 -Wno-pointer-sign -Wcast-function-type -Wno-array-bounds -Wno-stringop-overflow -Wno-alloc-size-larger-than -Wimplicit-fallthrough=5 -Werror=date-time -Werror=incompatible-pointer-types -Werror=designated-init -Wenum-conversion -Wunused -Wno-unused-but-set-variable -Wno-unused-const-variable -Wno-packed-not-aligned -Wno-format-overflow -Wno-format-truncation -Wno-stringop-truncation -Wno-override-init -Wno-missing-field-initializers -Wno-type-limits -Wno-shift-negative-value -Wno-maybe-uninitialized -Wno-sign-compare -Wno-unused-parameter -g -gdwarf-5 -fsanitize=kernel-address -fasan-shadow-offset=0xdffffc0000000000 --param asan-instrumentation-with-call-threshold=0 --param asan-stack=1 --param asan-instrument-allocas=1 --param asan-globals=1 -DMODULE -DKBUILD_BASENAME='"kasan_stack_test.mod"' -DKBUILD_MODNAME='"kasan_stack_test"' -D__KBUILD_MODNAME=kasan_stack_test -c -o kasan_stack_test.mod.o kasan_stack_test.mod.c ; /home/test/Downloads/linux-6.19.9/tools/objtool/objtool --hacks=jump_label --hacks=noinstr --hacks=skylake --retpoline --rethunk --stackval --static-call --uaccess --prefix=16 --link --module kasan_stack_test.mod.o
# cmd_gen_objtooldep kasan_stack_test.mod.o
{ echo ; echo 'kasan_stack_test.mod.o: $(wildcard /home/test/Downloads/linux-6.19.9/tools/objtool/objtool)' ; } >> ./.kasan_stack_test.mod.o.cmd
# CC [M] .module-common.o
gcc -Wp,-MMD,./..module-common.o.d -nostdinc -I/home/test/Downloads/linux-6.19.9/arch/x86/include -I/home/test/Downloads/linux-6.19.9/arch/x86/include/generated -I/home/test/Downloads/linux-6.19.9/include -I/home/test/Downloads/linux-6.19.9/include -I/home/test/Downloads/linux-6.19.9/arch/x86/include/uapi -I/home/test/Downloads/linux-6.19.9/arch/x86/include/generated/uapi -I/home/test/Downloads/linux-6.19.9/include/uapi -I/home/test/Downloads/linux-6.19.9/include/generated/uapi -include /home/test/Downloads/linux-6.19.9/include/linux/compiler-version.h -include /home/test/Downloads/linux-6.19.9/include/linux/kconfig.h -include /home/test/Downloads/linux-6.19.9/include/linux/compiler_types.h -D__KERNEL__ -std=gnu11 -fshort-wchar -funsigned-char -fno-common -fno-PIE -fno-strict-aliasing -mno-sse -mno-mmx -mno-sse2 -mno-3dnow -mno-avx -mno-sse4a -fcf-protection=none -m64 -falign-jumps=1 -falign-loops=1 -mno-80387 -mno-fp-ret-in-387 -mpreferred-stack-boundary=3 -mskip-rax-setup -march=x86-64 -mtune=generic -mno-red-zone -mcmodel=kernel -mstack-protector-guard-reg=gs -mstack-protector-guard-symbol=__ref_stack_chk_guard -Wno-sign-compare -fno-asynchronous-unwind-tables -mindirect-branch=thunk-extern -mindirect-branch-register -mindirect-branch-cs-prefix -mfunction-return=thunk-extern -fno-jump-tables -fpatchable-function-entry=16,16 -fno-delete-null-pointer-checks -O2 -fno-allow-store-data-races -fstack-protector-strong -fno-omit-frame-pointer -fno-optimize-sibling-calls -fno-stack-clash-protection -fzero-call-used-regs=used-gpr -pg -mrecord-mcount -mfentry -DCC_USING_FENTRY -falign-functions=16 -fms-extensions -fno-strict-overflow -fno-stack-check -fconserve-stack -fno-builtin-wcslen -Wall -Wextra -Wundef -Werror=implicit-function-declaration -Werror=implicit-int -Werror=return-type -Werror=strict-prototypes -Wno-format-security -Wno-trigraphs -Wno-frame-address -Wno-address-of-packed-member -Wmissing-declarations -Wmissing-prototypes -Wframe-larger-than=1024 -Wno-main -Wvla-larger-than=1 -Wno-pointer-sign -Wcast-function-type -Wno-array-bounds -Wno-stringop-overflow -Wno-alloc-size-larger-than -Wimplicit-fallthrough=5 -Werror=date-time -Werror=incompatible-pointer-types -Werror=designated-init -Wenum-conversion -Wunused -Wno-unused-but-set-variable -Wno-unused-const-variable -Wno-packed-not-aligned -Wno-format-overflow -Wno-format-truncation -Wno-stringop-truncation -Wno-override-init -Wno-missing-field-initializers -Wno-type-limits -Wno-shift-negative-value -Wno-maybe-uninitialized -Wno-sign-compare -Wno-unused-parameter -g -gdwarf-5 -fsanitize=kernel-address -fasan-shadow-offset=0xdffffc0000000000 --param asan-instrumentation-with-call-threshold=0 --param asan-stack=1 --param asan-instrument-allocas=1 --param asan-globals=1 -DMODULE -DKBUILD_BASENAME='".module_common"' -DKBUILD_MODNAME='".module_common.o"' -D__KBUILD_MODNAME=.module_common.o -c -o .module-common.o /home/test/Downloads/linux-6.19.9/scripts/module-common.c ; /home/test/Downloads/linux-6.19.9/tools/objtool/objtool --hacks=jump_label --hacks=noinstr --hacks=skylake --retpoline --rethunk --stackval --static-call --uaccess --prefix=16 --link --module .module-common.o
# cmd_gen_objtooldep .module-common.o
{ echo ; echo '.module-common.o: $(wildcard /home/test/Downloads/linux-6.19.9/tools/objtool/objtool)' ; } >> ./..module-common.o.cmd
# LD [M] kasan_stack_test.ko
ld -r -m elf_x86_64 -z noexecstack --build-id=sha1 -T /home/test/Downloads/linux-6.19.9/scripts/module.lds -o kasan_stack_test.ko kasan_stack_test.o kasan_stack_test.mod.o .module-common.o
make[2]: Leaving directory '/home/test/Downloads/web-dev/c-pointers/pycon-sphinx-tutorial/crawler/docs/lkd/kasan/kasan_stack_test'
make[1]: Leaving directory '/home/test/Downloads/linux-6.19.9'
Step 3: make test
[ 2548.780349] KASAN Stack Test Module Loaded
[ 2548.780357] ==================================================================
[ 2548.780364] BUG: KASAN: stack-out-of-bounds in trigger_stack_overflow+0x6e/0xb0 [kasan_stack_test]
[ 2548.780378] Write of size 1 at addr ffffc9002022f599 by task insmod/10198
[ 2548.780391] CPU: 0 UID: 0 PID: 10198 Comm: insmod Tainted: G B OE 6.19.9 #6 PREEMPT(voluntary)
[ 2548.780400] Tainted: [B]=BAD_PAGE, [O]=OOT_MODULE, [E]=UNSIGNED_MODULE
[ 2548.780403] Hardware name: LENOVO 20RV/LNVNB161216, BIOS CJCN41WW 03/13/2023
[ 2548.780406] Call Trace:
[ 2548.780408] <TASK>
[ 2548.780410] dump_stack_lvl+0x76/0xa0
[ 2548.780418] print_report+0xce/0x5e0
[ 2548.780425] ? __virt_addr_valid+0x50/0x1c0
[ 2548.780431] ? trigger_stack_overflow+0x6e/0xb0 [kasan_stack_test]
[ 2548.780439] ? kasan_addr_to_slab+0xd/0x90
[ 2548.780445] ? trigger_stack_overflow+0x6e/0xb0 [kasan_stack_test]
[ 2548.780454] kasan_report+0xc6/0x100
[ 2548.780460] ? trigger_stack_overflow+0x6e/0xb0 [kasan_stack_test]
[ 2548.780472] __asan_store1+0x6f/0x80
[ 2548.780478] trigger_stack_overflow+0x6e/0xb0 [kasan_stack_test]
[ 2548.780487] ? __pfx_trigger_stack_overflow+0x10/0x10 [kasan_stack_test]
[ 2548.780497] ? __pfx_kasan_stack_test_init+0x10/0x10 [kasan_stack_test]
[ 2548.780506] kasan_stack_test_init+0x1a/0xff0 [kasan_stack_test]
[ 2548.780515] do_one_initcall+0x9b/0x380
[ 2548.780521] ? __pfx_do_one_initcall+0x10/0x10
[ 2548.780526] ? __kasan_kmalloc+0xc1/0xd0
[ 2548.780532] ? __kmalloc_cache_noprof+0x1e5/0x5c0
[ 2548.780537] ? kasan_poison+0x3a/0x70
[ 2548.780542] ? kasan_unpoison+0x28/0x70
[ 2548.780547] ? kasan_poison+0x3a/0x70
[ 2548.780552] ? __asan_register_globals+0x5e/0x90
[ 2548.780559] do_init_module+0x1eb/0x520
[ 2548.780567] ? __pfx_do_init_module+0x10/0x10
[ 2548.780573] ? klp_module_coming+0x2ac/0x3e0
[ 2548.780587] load_module+0x3a6c/0x3bd0
[ 2548.780600] ? __pfx_load_module+0x10/0x10
[ 2548.780605] ? __pfx_ima_post_read_file+0x10/0x10
[ 2548.780618] ? security_file_permission+0x13c/0x160
[ 2548.780627] ? rw_verify_area+0x9b/0x260
[ 2548.780632] ? __vmalloc_node_noprof+0xa7/0xe0
[ 2548.780639] ? __kasan_check_write+0x14/0x30
[ 2548.780644] ? kernel_read_file+0x1e1/0x4d0
[ 2548.780651] ? __pfx_kernel_read_file+0x10/0x10
[ 2548.780658] init_module_from_file+0x192/0x1c0
[ 2548.780663] ? init_module_from_file+0x192/0x1c0
[ 2548.780669] ? __pfx_init_module_from_file+0x10/0x10
[ 2548.780674] ? ksys_mmap_pgoff+0x1ca/0x2b0
[ 2548.780682] ? __kasan_check_write+0x14/0x30
[ 2548.780687] ? _raw_spin_lock+0x81/0xf0
[ 2548.780693] ? __pfx__raw_spin_lock+0x10/0x10
[ 2548.780699] ? __kasan_check_read+0x11/0x20
[ 2548.780704] ? fpregs_assert_state_consistent+0x7e/0x90
[ 2548.780711] idempotent_init_module+0x29d/0x3f0
[ 2548.780717] ? __pfx_idempotent_init_module+0x10/0x10
[ 2548.780725] ? __kasan_check_read+0x11/0x20
[ 2548.780729] ? fdget+0xa0/0x1c0
[ 2548.780736] __x64_sys_finit_module+0x91/0x110
[ 2548.780741] ? __kasan_check_read+0x11/0x20
[ 2548.780747] x64_sys_call+0x1bba/0x2780
[ 2548.780752] do_syscall_64+0x7c/0x580
[ 2548.780758] ? putname.part.0+0x64/0xb0
[ 2548.780764] ? putname+0x1c/0x30
[ 2548.780768] ? do_sys_openat2+0xf9/0x180
[ 2548.780773] ? __pfx_do_sys_openat2+0x10/0x10
[ 2548.780780] ? __kasan_check_read+0x11/0x20
[ 2548.780784] ? count_memcg_events+0x1b4/0x240
[ 2548.780791] ? __x64_sys_openat+0xe5/0x170
[ 2548.780797] ? __pfx___x64_sys_openat+0x10/0x10
[ 2548.780802] ? __kasan_check_read+0x11/0x20
[ 2548.780807] ? fpregs_assert_state_consistent+0x7e/0x90
[ 2548.780813] ? __kasan_check_read+0x11/0x20
[ 2548.780818] ? fpregs_assert_state_consistent+0x7e/0x90
[ 2548.780823] ? clear_bhb_loop+0x50/0xa0
[ 2548.780828] ? clear_bhb_loop+0x50/0xa0
[ 2548.780832] ? clear_bhb_loop+0x50/0xa0
[ 2548.780837] entry_SYSCALL_64_after_hwframe+0x76/0x7e
[ 2548.780842] RIP: 0033:0x737ff531e90d
[ 2548.780846] Code: 5b 41 5c c3 66 0f 1f 84 00 00 00 00 00 f3 0f 1e fa 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 8b 0d f3 b4 0f 00 f7 d8 64 89 01 48
[ 2548.780851] RSP: 002b:00007ffe3dbe1768 EFLAGS: 00000246 ORIG_RAX: 0000000000000139
[ 2548.780856] RAX: ffffffffffffffda RBX: 00005bc37e8577e0 RCX: 0000737ff531e90d
[ 2548.780860] RDX: 0000000000000000 RSI: 00005bc36116bcd2 RDI: 0000000000000003
[ 2548.780863] RBP: 0000000000000000 R08: 0000000000000000 R09: 0000000000000000
[ 2548.780866] R10: 0000000000000003 R11: 0000000000000246 R12: 00005bc36116bcd2
[ 2548.780869] R13: 00005bc37e857750 R14: 00005bc36116a888 R15: 00005bc37e857900
[ 2548.780875] </TASK>
[ 2548.780985] The buggy address belongs to stack of task insmod/10198
[ 2548.780989] and is located at offset 41 in frame:
[ 2548.780993] trigger_stack_overflow+0x0/0xb0 [kasan_stack_test]
[ 2548.781007] This frame has 1 object:
[ 2548.781011] [32, 40) 'stack_array'
[ 2548.781019] The buggy address belongs to a vmalloc virtual mapping
[ 2548.781026] The buggy address belongs to the physical page:
[ 2548.781030] page: refcount:1 mapcount:0 mapping:0000000000000000 index:0x2d pfn:0x149e27
[ 2548.781036] memcg:ffff8881178b6202
[ 2548.781039] flags: 0x17ffffc0000000(node=0|zone=2|lastcpupid=0x1fffff)
[ 2548.781048] raw: 0017ffffc0000000 0000000000000000 dead000000000122 0000000000000000
[ 2548.781053] raw: 000000000000002d 0000000000000000 00000001ffffffff ffff8881178b6202
[ 2548.781057] page dumped because: kasan: bad access detected
[ 2548.781063] Memory state around the buggy address:
[ 2548.781068] ffffc9002022f480: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
[ 2548.781073] ffffc9002022f500: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 f1 f1
[ 2548.781078] >ffffc9002022f580: f1 f1 00 f3 f3 f3 00 00 00 00 00 00 00 00 00 00
[ 2548.781082] ^
[ 2548.781087] ffffc9002022f600: 00 f1 f1 f1 f1 00 00 00 00 00 00 00 00 f3 f3 f3
[ 2548.781092] ffffc9002022f680: f3 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
[ 2548.781097] ==================================================================
[ 2548.963198] KASAN Stack Test Module Unloaded