You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
==31696==ERROR: AddressSanitizer: heap-buffer-overflow on address 0x611000040380 at pc 0x7fc206655205 bp 0x7ffc47178820 sp 0x7ffc47178810
READ of size 1 at 0x611000040380 thread T0
#0 0x7fc206655204 in m68k_read_disassembler_16 arch/M68K/M68KDisassembler.c:162 #1 0x7fc206655795 in m68k_read_safe_16 arch/M68K/M68KDisassembler.c:194 #2 0x7fc206655a1b in peek_imm_16 arch/M68K/M68KDisassembler.c:302 #3 0x7fc206664f58 in m68k_disassemble arch/M68K/M68KDisassembler.c:4033 #4 0x7fc206665462 in M68K_getInstruction arch/M68K/M68KDisassembler.c:4074 #5 0x7fc2065743aa in cs_disasm /home/test/radare2/shlr/capstone/cs.c:683 #6 0x7fc206414e01 in analop /home/test/radare2/libr/..//libr/anal/p/anal_m68k_cs.c:115 #7 0x7fc20649790e in r_anal_op /home/test/radare2/libr/anal/op.c:104 #8 0x7fc2085f899e in r_core_anal_search_xrefs /home/test/radare2/libr/core/canal.c:2825 #9 0x7fc2084bcf42 in r_core_anal_refs /home/test/radare2/libr/core/cmd_anal.c:5938 #10 0x7fc2084bf8bb in cmd_anal_all /home/test/radare2/libr/core/cmd_anal.c:6323 #11 0x7fc2084c178a in cmd_anal /home/test/radare2/libr/core/cmd_anal.c:6667 #12 0x7fc2085ddc6e in r_cmd_call /home/test/radare2/libr/core/cmd_api.c:233 #13 0x7fc208542f3e in r_core_cmd_subst_i /home/test/radare2/libr/core/cmd.c:2686 #14 0x7fc20853c3f0 in r_core_cmd_subst /home/test/radare2/libr/core/cmd.c:1733 #15 0x7fc2085480a0 in r_core_cmd /home/test/radare2/libr/core/cmd.c:3368 #16 0x7fc208548e63 in r_core_cmd0 /home/test/radare2/libr/core/cmd.c:3535 #17 0x557d39a09076 in main /home/test/radare2/binr/radare2/radare2.c:1286 #18 0x7fc20289282f in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x2082f) #19 0x557d39a02d38 in _start (/home/test/radare2/binr/radare2/radare2+0x6d38)
I am forwarding this issue from radare2, which makes use of Capstone as an engine. (radareorg/radare2#9918).
Work environment
Expected behavior
Disassembling ELF32 without vulnerability
Actual behavior
heap-buffer-overflow
Steps to reproduce the behavior
Vulnerable code
// arch/M68K/M68KDisassembler.c
159 static unsigned int m68k_read_disassembler_16(const m68k_info *info, const uint64_t addr)
160 {
161 const uint16_t v0 = info->code[addr + 0]; //Vulnerable
162 const uint16_t v1 = info->code[addr + 1]; //Vulnerable
163 return (v0 << 8) | v1;
164 }
165
166 static unsigned int m68k_read_disassembler_32(const m68k_info *info, const uint64_t addr)
167 {
168 const uint32_t v0 = info->code[addr + 0];
169 const uint32_t v1 = info->code[addr + 1];
170 const uint32_t v2 = info->code[addr + 2]; //Vulnerable
171 const uint32_t v3 = info->code[addr + 3]; //Vulnerable
172 return (v0 << 24) | (v1 << 16) | (v2 << 8) | v3;
173 }
Additional Logs, screenshots, source-code, configuration dump, ...
==31696==ERROR: AddressSanitizer: heap-buffer-overflow on address 0x611000040380 at pc 0x7fc206655205 bp 0x7ffc47178820 sp 0x7ffc47178810
READ of size 1 at 0x611000040380 thread T0
#0 0x7fc206655204 in m68k_read_disassembler_16 arch/M68K/M68KDisassembler.c:162
#1 0x7fc206655795 in m68k_read_safe_16 arch/M68K/M68KDisassembler.c:194
#2 0x7fc206655a1b in peek_imm_16 arch/M68K/M68KDisassembler.c:302
#3 0x7fc206664f58 in m68k_disassemble arch/M68K/M68KDisassembler.c:4033
#4 0x7fc206665462 in M68K_getInstruction arch/M68K/M68KDisassembler.c:4074
#5 0x7fc2065743aa in cs_disasm /home/test/radare2/shlr/capstone/cs.c:683
#6 0x7fc206414e01 in analop /home/test/radare2/libr/..//libr/anal/p/anal_m68k_cs.c:115
#7 0x7fc20649790e in r_anal_op /home/test/radare2/libr/anal/op.c:104
#8 0x7fc2085f899e in r_core_anal_search_xrefs /home/test/radare2/libr/core/canal.c:2825
#9 0x7fc2084bcf42 in r_core_anal_refs /home/test/radare2/libr/core/cmd_anal.c:5938
#10 0x7fc2084bf8bb in cmd_anal_all /home/test/radare2/libr/core/cmd_anal.c:6323
#11 0x7fc2084c178a in cmd_anal /home/test/radare2/libr/core/cmd_anal.c:6667
#12 0x7fc2085ddc6e in r_cmd_call /home/test/radare2/libr/core/cmd_api.c:233
#13 0x7fc208542f3e in r_core_cmd_subst_i /home/test/radare2/libr/core/cmd.c:2686
#14 0x7fc20853c3f0 in r_core_cmd_subst /home/test/radare2/libr/core/cmd.c:1733
#15 0x7fc2085480a0 in r_core_cmd /home/test/radare2/libr/core/cmd.c:3368
#16 0x7fc208548e63 in r_core_cmd0 /home/test/radare2/libr/core/cmd.c:3535
#17 0x557d39a09076 in main /home/test/radare2/binr/radare2/radare2.c:1286
#18 0x7fc20289282f in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x2082f)
#19 0x557d39a02d38 in _start (/home/test/radare2/binr/radare2/radare2+0x6d38)
radare2_poc.zip
The text was updated successfully, but these errors were encountered: