cesanta / mjs

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

A NULL pointer dereference in the function exec_expr() mjs.c:9144 #165

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)
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-9035-exec_expr-null-pointer-deref

ASAN info:

ASAN:SIGSEGV
=================================================================
==9001==ERROR: AddressSanitizer: SEGV on unknown address 0x00000042a6c5 (pc 0x000000422d9c bp 0x7ffd55fb7a40 sp 0x7ffd55fb7910 T0)
    #0 0x422d9b in exec_expr  test/mjs-uaf/build_asan/mjs.c:9144
    #1 0x4259f6 in mjs_execute  test/mjs-uaf/build_asan/mjs.c:9683
    #2 0x4265f1 in mjs_exec_internal  test/mjs-uaf/build_asan/mjs.c:9866
    #3 0x426873 in mjs_exec_file  test/mjs-uaf/build_asan/mjs.c:9889
    #4 0x431348 in main  test/mjs-uaf/build_asan/mjs.c:12228
    #5 0x7f019dc4882f in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x2082f)
    #6 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:9144 exec_expr
==9001==ABORTING