Security
Headlines
HeadlinesLatestCVEs

Headline

CVE-2022-36041: Heap out-of-bounds write in mach0.c · Issue #2956 · rizinorg/rizin

Rizin is a UNIX-like reverse engineering framework and command-line toolset. Versions 0.4.0 and prior are vulnerable to an out-of-bounds write when parsing Mach-O files. A user opening a malicious Mach-O file could be affected by this vulnerability, allowing an attacker to execute code on the user’s machine. Commit number 7323e64d68ecccfb0ed3ee480f704384c38676b2 contains a patch.

CVE
#vulnerability#mac

Hi! We’ve been fuzzing your project and found the following error in librz/bin/format/mach0/mach0.c

=================================================================
==2478981==ERROR: AddressSanitizer: heap-buffer-overflow on address 0x6020001af852 at pc 0x000000c5c71d bp 0x7ffdd3ff06f0 sp 0x7ffdd3ff06e8
WRITE of size 2 at 0x6020001af852 thread T0
    #0 0xc5c71c in reconstruct_chained_fixup /home/madrat/Desktop/rizin-report/rizin/build-asan/../librz/bin/format/mach0/mach0.c:1612:39
    #1 0xc5c71c in init_items /home/madrat/Desktop/rizin-report/rizin/build-asan/../librz/bin/format/mach0/mach0.c:2041:3
    #2 0xc32de1 in init /home/madrat/Desktop/rizin-report/rizin/build-asan/../librz/bin/format/mach0/mach0.c:2050:7
    #3 0xc32de1 in new_buf_64 /home/madrat/Desktop/rizin-report/rizin/build-asan/../librz/bin/format/mach0/mach0.c:2123:8
    #4 0xb3548a in load_buffer /home/madrat/Desktop/rizin-report/rizin/build-asan/../librz/bin/p/bin_mach0.c:47:30
    #5 0xae7004 in rz_bin_object_new /home/madrat/Desktop/rizin-report/rizin/build-asan/../librz/bin/bobj.c:300:8
    #6 0xad7d31 in rz_bin_file_new_from_buffer /home/madrat/Desktop/rizin-report/rizin/build-asan/../librz/bin/bfile.c:150:19
    #7 0xadf3c7 in rz_bin_open_buf /home/madrat/Desktop/rizin-report/rizin/build-asan/../librz/bin/bin.c:272:8
    #8 0xadec27 in rz_bin_open_io /home/madrat/Desktop/rizin-report/rizin/build-asan/../librz/bin/bin.c:330:18
    #9 0x1003353 in core_file_do_load_for_io_plugin /home/madrat/Desktop/rizin-report/rizin/build-asan/../librz/core/cfile.c:727:23
    #10 0x1003353 in rz_core_bin_load /home/madrat/Desktop/rizin-report/rizin/build-asan/../librz/core/cfile.c:974:4
    #11 0x5b9af8 in rz_main_rizin /home/madrat/Desktop/rizin-report/rizin/build-asan/../librz/main/rizin.c:1119:14
    #12 0x7f601eb77082 in __libc_start_main /build/glibc-SzIz7B/glibc-2.31/csu/../csu/libc-start.c:308:16
    #13 0x41da3d in _start (/home/madrat/Desktop/rizin-report/rz-installation-asan/bin/rizin+0x41da3d)

0x6020001af852 is located 0 bytes to the right of 2-byte region [0x6020001af850,0x6020001af852)
allocated by thread T0 here:
    #0 0x498c9d in malloc (/home/madrat/Desktop/rizin-report/rz-installation-asan/bin/rizin+0x498c9d)
    #1 0xc57e72 in reconstruct_chained_fixup /home/madrat/Desktop/rizin-report/rizin/build-asan/../librz/bin/format/mach0/mach0.c:1600:30
    #2 0xc57e72 in init_items /home/madrat/Desktop/rizin-report/rizin/build-asan/../librz/bin/format/mach0/mach0.c:2041:3
    #3 0xc32de1 in init /home/madrat/Desktop/rizin-report/rizin/build-asan/../librz/bin/format/mach0/mach0.c:2050:7
    #4 0xc32de1 in new_buf_64 /home/madrat/Desktop/rizin-report/rizin/build-asan/../librz/bin/format/mach0/mach0.c:2123:8
    #5 0xb3548a in load_buffer /home/madrat/Desktop/rizin-report/rizin/build-asan/../librz/bin/p/bin_mach0.c:47:30
    #6 0xae7004 in rz_bin_object_new /home/madrat/Desktop/rizin-report/rizin/build-asan/../librz/bin/bobj.c:300:8

SUMMARY: AddressSanitizer: heap-buffer-overflow /home/madrat/Desktop/rizin-report/rizin/build-asan/../librz/bin/format/mach0/mach0.c:1612:39 in reconstruct_chained_fixup
Shadow bytes around the buggy address:
  0x0c048002deb0: fa fa 06 fa fa fa 00 03 fa fa 06 fa fa fa 00 03
  0x0c048002dec0: fa fa 06 fa fa fa 00 03 fa fa 06 fa fa fa 00 03
  0x0c048002ded0: fa fa 06 fa fa fa 00 03 fa fa 06 fa fa fa 00 03
  0x0c048002dee0: fa fa 06 fa fa fa 06 fa fa fa 06 fa fa fa 00 00
  0x0c048002def0: fa fa 06 fa fa fa 00 05 fa fa 06 fa fa fa fd fa
=>0x0c048002df00: fa fa 00 04 fa fa 00 02 fa fa[02]fa fa fa fa fa
  0x0c048002df10: fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa
  0x0c048002df20: fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa
  0x0c048002df30: fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa
  0x0c048002df40: fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa
  0x0c048002df50: 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
  Shadow gap:              cc
==2478981==ABORTING

CVE: Latest News

CVE-2023-50976: Transactions API Authorization by oleiman · Pull Request #14969 · redpanda-data/redpanda