cesanta / mjs

Embedded JavaScript engine for C/C++
https://mongoose-os.com
Other
1.91k stars 176 forks source link

A NULL pointer dereference in the function getprop_builtin_foreign() mjs.c:9298 #166

Open Clingto opened 3 years ago

Clingto commented 3 years ago

System info:
Ubuntu 16.04.6 LTS, X64, gcc 5.4.0, mjs (latest master 4c870e5)
I think it is probably a similar issue as #114 Compile Command:

$ gcc -fsanitize=address -fno-omit-frame-pointer -DMJS_MAIN mjs.c -ldl -g -o mjs

Run Command:

$ mjs -f $POC

POC file:
https://github.com/Clingto/POC/blob/master/MSA/mjs/mjs-9187-getprop_builtin_foreign-null-pointer-deref

ASAN info:

ASAN:SIGSEGV
=================================================================
==9391==ERROR: AddressSanitizer: SEGV on unknown address 0x000004a7dc5d (pc 0x000000423a8c bp 0x7ffe565a5270 sp 0x7ffe565a51b0 T0)
    #0 0x423a8b in getprop_builtin_foreign  test/mjs-uaf/build_asan/mjs.c:9298
    #1 0x42407e in getprop_builtin  test/mjs-uaf/build_asan/mjs.c:9335
    #2 0x424c51 in mjs_execute  test/mjs-uaf/build_asan/mjs.c:9485
    #3 0x4265f1 in mjs_exec_internal  test/mjs-uaf/build_asan/mjs.c:9866
    #4 0x426873 in mjs_exec_file  test/mjs-uaf/build_asan/mjs.c:9889
    #5 0x431348 in main  test/mjs-uaf/build_asan/mjs.c:12228
    #6 0x7febbe9ac82f in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x2082f)
    #7 0x401af8 in _start ( test/mjs-uaf/bin_asan/bin/mjs_bin+0x401af8)

AddressSanitizer can not provide additional info.
SUMMARY: AddressSanitizer: SEGV  test/mjs-uaf/build_asan/mjs.c:9298 getprop_builtin_foreign
==9391==ABORTING