Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

heap buffer overflow in OpCode (via decompileINCR_DECR) #81

Closed
bestshow opened this issue Jun 8, 2017 · 0 comments
Closed

heap buffer overflow in OpCode (via decompileINCR_DECR) #81

bestshow opened this issue Jun 8, 2017 · 0 comments

Comments

@bestshow
Copy link

bestshow commented Jun 8, 2017

On libming latest version, a heap buffer overflow was found in function OpCode .

#swftocxx $FILE out
=================================================================
heap-buffer-overflow on address 0x6120000005f0 at pc 0x000000560490 bp 0x7ffdb7ed2610 sp 0x7ffdb7ed2608
READ of size 1 at 0x6120000005f0 thread T0
    #0 0x56048f in OpCode /home/haojun/Downloads/libming-master/util/decompile.c:868:37
    #1 0x56048f in decompileINCR_DECR /home/haojun/Downloads/libming-master/util/decompile.c:1474
    #2 0x537f24 in decompileAction /home/haojun/Downloads/libming-master/util/decompile.c:3222:10
    #3 0x5875eb in decompileActions /home/haojun/Downloads/libming-master/util/decompile.c:3401:6
    #4 0x5875eb in decompile5Action /home/haojun/Downloads/libming-master/util/decompile.c:3423
    #5 0x52a0c5 in outputSWF_DOACTION /home/haojun/Downloads/libming-master/util/outputscript.c:1548:29
    #6 0x531311 in readMovie /home/haojun/Downloads/libming-master/util/main.c:277:4
    #7 0x531311 in main /home/haojun/Downloads/libming-master/util/main.c:350
    #8 0x7f1423d73b34 in __libc_start_main /usr/src/debug/glibc-2.17-c758a686/csu/../csu/libc-start.c:274
    #9 0x41ae7b in _start (/home/haojun/Downloads/libming-afl-build/bin/swftocxx+0x41ae7b)

0x6120000005f0 is located 40 bytes to the right of 264-byte region [0x6120000004c0,0x6120000005c8)
allocated by thread T0 here:
    #0 0x4dff2d in calloc /home/haojun/Downloads/llvm-clang/llvm/projects/compiler-rt/lib/asan/asan_malloc_linux.cc:74
    #1 0x5beb8c in parseSWF_DOACTION /home/haojun/Downloads/libming-master/util/parser.c:2428:3
    #2 0x7f1423d73b34 in __libc_start_main /usr/src/debug/glibc-2.17-c758a686/csu/../csu/libc-start.c:274

heap-buffer-overflow /home/haojun/Downloads/libming-master/util/decompile.c:868:37 in OpCode
Shadow bytes around the buggy address:
  0x0c247fff8060: fa fa fa fa fa fa fa fa fd fd fd fd fd fd fd fd
  0x0c247fff8070: fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd
  0x0c247fff8080: fd fd fd fd fd fd fd fd fd fa fa fa fa fa fa fa
  0x0c247fff8090: fa fa fa fa fa fa fa fa 00 00 00 00 00 00 00 00
  0x0c247fff80a0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
=>0x0c247fff80b0: 00 00 00 00 00 00 00 00 00 fa fa fa fa fa[fa]fa
  0x0c247fff80c0: fa fa fa fa fa fa fa fa 00 00 00 00 00 00 00 00
  0x0c247fff80d0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
  0x0c247fff80e0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
  0x0c247fff80f0: fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa
  0x0c247fff8100: fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa
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
  Stack mid redzone:       f2
  Stack right redzone:     f3
  Stack after return:      f5
  Stack use after scope:   f8
  Global redzone:          f9
  Global init order:       f6
  Poisoned by user:        f7
  Container overflow:      fc
  Array cookie:            ac
  Intra object redzone:    bb
  ASan internal:           fe
  Left alloca redzone:     ca
  Right alloca redzone:    cb
==16682==ABORTING

testcase : https://github.com/bestshow/p0cs/blob/master/heap-buffer-overflow-in_OpCode_by_decompileINCR_DECR_2
Credit : ADLab of Venustech

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant