Closed JCWasmx86 closed 2 years ago
If anyone wants to give this a shot, this is the ASAN trace (commit 5d42d9d1636c165083eeb7348e4beba4bfbb48f2):
=================================================================
==14852==ERROR: AddressSanitizer: heap-use-after-free on address 0x60300135cca0 at pc 0x7f45dc466938 bp 0x7ffd9f8b0f10 sp 0x7ffd9f8b0f08
READ of size 4 at 0x60300135cca0 thread T0
#0 0x7f45dc466937 in rz_type_clone ../librz/type/type.c:1170
#1 0x7f45e1f24c91 in var_type_clone_or_default_type ../librz/analysis/var.c:25
#2 0x7f45e1f26f7e in rz_analysis_function_set_var ../librz/analysis/var.c:161
#3 0x7f45e1f228bb in rz_analysis_dwarf_integrate_functions ../librz/analysis/dwarf_process.c:1706
#4 0x7f45dd59e960 in rz_core_analysis_everything ../librz/core/canalysis.c:6758
#5 0x7f45dd93634e in cmd_analysis_all ../librz/core/cmd/cmd_analysis.c:7439
#6 0x7f45dd940b5d in rz_cmd_analysis ../librz/core/cmd/cmd_analysis.c:8384
#7 0x7f45ddaa5433 in call_cd ../librz/core/cmd/cmd_api.c:753
#8 0x7f45ddaa54f0 in rz_cmd_call_parsed_args ../librz/core/cmd/cmd_api.c:768
#9 0x7f45dda757f4 in handle_ts_arged_stmt_internal ../librz/core/cmd/cmd.c:3981
#10 0x7f45dda74690 in handle_ts_arged_stmt ../librz/core/cmd/cmd.c:3929
#11 0x7f45dda9287c in handle_ts_stmt ../librz/core/cmd/cmd.c:5429
#12 0x7f45dda93fe9 in handle_ts_statements_internal ../librz/core/cmd/cmd.c:5486
#13 0x7f45dda93114 in handle_ts_statements ../librz/core/cmd/cmd.c:5451
#14 0x7f45dda953c5 in core_cmd_tsrzcmd ../librz/core/cmd/cmd.c:5594
#15 0x7f45dda95d33 in rz_core_cmd ../librz/core/cmd/cmd.c:5643
#16 0x7f45dd6d3402 in rz_core_prompt_exec ../librz/core/core.c:2838
#17 0x7f45dd6d0d0f in rz_core_prompt_loop ../librz/core/core.c:2689
#18 0x7f45eadce673 in rz_main_rizin ../librz/main/rizin.c:1370
#19 0x401a6b in main ../binrz/rizin/rizin.c:57
#20 0x7f45ea1feb74 in __libc_start_main (/lib64/libc.so.6+0x27b74)
#21 0x4011dd in _start (/home/rschiron/projects/rizinorg/rizin/build-dev/binrz/rizin/rizin+0x4011dd)
0x60300135cca0 is located 0 bytes inside of 32-byte region [0x60300135cca0,0x60300135ccc0)
freed by thread T0 here:
#0 0x7f45ebc3d647 in free (/lib64/libasan.so.6+0xae647)
#1 0x7f45dc47cd98 in parse_type_abstract_declarator_node ../librz/type/parser/types_parser.c:1352
#2 0x7f45dc481a45 in parse_type_descriptor_single ../librz/type/parser/types_parser.c:1774
#3 0x7f45dc46d9f7 in rz_type_parse_string_single ../librz/type/parser/c_cpp_parser.c:354
#4 0x7f45e1f22181 in rz_analysis_dwarf_integrate_functions ../librz/analysis/dwarf_process.c:1684
#5 0x7f45dd59e960 in rz_core_analysis_everything ../librz/core/canalysis.c:6758
#6 0x7f45dd93634e in cmd_analysis_all ../librz/core/cmd/cmd_analysis.c:7439
#7 0x7f45dd940b5d in rz_cmd_analysis ../librz/core/cmd/cmd_analysis.c:8384
#8 0x7f45ddaa5433 in call_cd ../librz/core/cmd/cmd_api.c:753
#9 0x7f45ddaa54f0 in rz_cmd_call_parsed_args ../librz/core/cmd/cmd_api.c:768
#10 0x7f45dda757f4 in handle_ts_arged_stmt_internal ../librz/core/cmd/cmd.c:3981
#11 0x7f45dda74690 in handle_ts_arged_stmt ../librz/core/cmd/cmd.c:3929
#12 0x7f45dda9287c in handle_ts_stmt ../librz/core/cmd/cmd.c:5429
#13 0x7f45dda93fe9 in handle_ts_statements_internal ../librz/core/cmd/cmd.c:5486
#14 0x7f45dda93114 in handle_ts_statements ../librz/core/cmd/cmd.c:5451
#15 0x7f45dda953c5 in core_cmd_tsrzcmd ../librz/core/cmd/cmd.c:5594
#16 0x7f45dda95d33 in rz_core_cmd ../librz/core/cmd/cmd.c:5643
#17 0x7f45dd6d3402 in rz_core_prompt_exec ../librz/core/core.c:2838
#18 0x7f45dd6d0d0f in rz_core_prompt_loop ../librz/core/core.c:2689
#19 0x7f45eadce673 in rz_main_rizin ../librz/main/rizin.c:1370
#20 0x401a6b in main ../binrz/rizin/rizin.c:57
#21 0x7f45ea1feb74 in __libc_start_main (/lib64/libc.so.6+0x27b74)
previously allocated by thread T0 here:
#0 0x7f45ebc3daf7 in calloc (/lib64/libasan.so.6+0xaeaf7)
#1 0x7f45dc47c926 in parse_type_abstract_declarator_node ../librz/type/parser/types_parser.c:1332
#2 0x7f45dc481a45 in parse_type_descriptor_single ../librz/type/parser/types_parser.c:1774
#3 0x7f45dc46d9f7 in rz_type_parse_string_single ../librz/type/parser/c_cpp_parser.c:354
#4 0x7f45e1f22181 in rz_analysis_dwarf_integrate_functions ../librz/analysis/dwarf_process.c:1684
#5 0x7f45dd59e960 in rz_core_analysis_everything ../librz/core/canalysis.c:6758
#6 0x7f45dd93634e in cmd_analysis_all ../librz/core/cmd/cmd_analysis.c:7439
#7 0x7f45dd940b5d in rz_cmd_analysis ../librz/core/cmd/cmd_analysis.c:8384
#8 0x7f45ddaa5433 in call_cd ../librz/core/cmd/cmd_api.c:753
#9 0x7f45ddaa54f0 in rz_cmd_call_parsed_args ../librz/core/cmd/cmd_api.c:768
#10 0x7f45dda757f4 in handle_ts_arged_stmt_internal ../librz/core/cmd/cmd.c:3981
#11 0x7f45dda74690 in handle_ts_arged_stmt ../librz/core/cmd/cmd.c:3929
#12 0x7f45dda9287c in handle_ts_stmt ../librz/core/cmd/cmd.c:5429
#13 0x7f45dda93fe9 in handle_ts_statements_internal ../librz/core/cmd/cmd.c:5486
#14 0x7f45dda93114 in handle_ts_statements ../librz/core/cmd/cmd.c:5451
#15 0x7f45dda953c5 in core_cmd_tsrzcmd ../librz/core/cmd/cmd.c:5594
#16 0x7f45dda95d33 in rz_core_cmd ../librz/core/cmd/cmd.c:5643
#17 0x7f45dd6d3402 in rz_core_prompt_exec ../librz/core/core.c:2838
#18 0x7f45dd6d0d0f in rz_core_prompt_loop ../librz/core/core.c:2689
#19 0x7f45eadce673 in rz_main_rizin ../librz/main/rizin.c:1370
#20 0x401a6b in main ../binrz/rizin/rizin.c:57
#21 0x7f45ea1feb74 in __libc_start_main (/lib64/libc.so.6+0x27b74)
SUMMARY: AddressSanitizer: heap-use-after-free ../librz/type/type.c:1170 in rz_type_clone
Shadow bytes around the buggy address:
0x0c0680263940: fd fd fd fa fa fa fd fd fd fa fa fa fa fa fa fa
0x0c0680263950: fa fa fa fa fa fa fa fa fd fd fd fd fa fa fd fd
0x0c0680263960: fd fd fa fa fa fa fa fa fa fa fd fd fd fd fa fa
0x0c0680263970: fa fa fa fa fa fa fa fa fa fa fa fa fd fd fd fa
0x0c0680263980: fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa
=>0x0c0680263990: fa fa fa fa[fd]fd fd fd fa fa fa fa fa fa fa fa
0x0c06802639a0: fd fd fd fa fa fa fa fa fa fa fa fa fd fd fd fa
0x0c06802639b0: fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa
0x0c06802639c0: fa fa fa fa fa fa fa fa fa fa 00 00 00 00 fa fa
0x0c06802639d0: fa fa fa fa fa fa fa fa fa fa fa fa fd fd fd fd
0x0c06802639e0: fa fa fa fa fa fa fa fa 00 00 00 00 fa fa fd fd
Shadow byte legend (one shadow byte represents 8 application bytes):
Addressable: 00
Partially addressable: 01 02 03 04 05 06 07
Heap left redzone: fa
Freed heap region: fd
Stack left redzone: f1
Work environment
rizin -v
full output, not truncated (mandatory)Expected behavior
rizin doesn't crash
Actual behavior
rizin crashes with:
Steps to reproduce the behavior
The stripped binary doesn't make rizin crash
Additional Logs, screenshots, source code, configuration dump, ...
GDB Backtrace:
binaries.zip